我有一个表单,它使用simple_nested_form_for
和simple_fields_for
将属性保存到两个模型Company
和嵌套模型Address
的单个表单中。
属性:
Company:
-legal form
-uploads
Address:
-name
-website
在我的表格中,我希望更改字段的顺序
-name (Address model)
-legal form (Company model)
-website (Address model)
-uploads (Company model)
从而交换form
属性和nested_field
属性
我尝试了以下方法,但似乎不起作用。
<%= simple_nested_form_for @company do |f| %>
<%= f.simple_fields_for :address do |c| %>
<%= c.input :name %>
<% end %>
<%= f.input :legal_form %>
<%= f.simple_fields_for :address do |c| %>
<%= c.input :website %>
<% end %>
<%= f.input :uploads %>
<% end %>
我该如何做到这一点?
虽然你的所有属性看起来都不一致(你说上传是地址,网站在你的属性列表中,但表单与此不匹配),但你的问题仍然有一个简单的解决方案。
嵌套字段依赖于它们的生成器来表示将它们放入params哈希的哪个部分。因此,只需调用所需的生成器即可。
<%= simple_nested_form_for @company do |f| %>
<%= f.simple_fields_for :address do |c| %>
<%= c.input :name %>
<%= f.input :legal_form %>
<%= c.input :website %>
<%= f.input :uploads %>
<% end %>
<%= f.submit %>
<% end %>
在每个需要公司字段的地方,您都会调用生成器f
,在每个需要地址字段的地方都会调用构造函数c
,但它们都嵌套在最低公分母内,因此都可用。