У меня есть следующий код формы (несущественные детали опущены):Есть ли лучший способ назвать это поле соответствующим образом?
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { id: "payment-form" }) do |f| %>
<%= f.fields_for resource.paid_account do |pa| %>
<%= pa.collection_select :account_plan_id, @account_plans, :id, :name_with_price, {},
{ name: "user[paid_account_attributes][account_plan_id]" } %>
<% end %>
<% end %>
Вы можете увидеть тупую часть на 4-е строки: Я жесткое кодирование имени user[paid_account_attributes][account_plan_id]
. Если я этого не сделаю, то имя, которое он получает, - user[paid_account][account_plan_id]
, которое не летает на внутреннем сервере.
Как я это делаю, но это похоже на взлома. Есть ли более элегантный способ?
Вы добавили accepts_nested_attributes_for: paid_account в вашей модели? Он должен сделать это автоматически – DiegoSalazar