Rails:如何自定义带有嵌套字段的表单中字段的顺序



我有一个表单,它使用simple_nested_form_forsimple_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,但它们都嵌套在最低公分母内,因此都可用。

相关内容

  • 没有找到相关文章

最新更新