Rails 3 fields_for - 排序顺序丢失

2024-01-18

我正在使用 Rails 3.0.3 和 ruby​​ 1.9.2p0。

在我的profiles_controller(编辑功能)中我有这个电话

@profile = Profile.find(params[:id])
@profile_items = @profile.profile_items.order("pos")

以正确的顺序获取@profile_items,按“pos”排序。 在 _form.html.erb 中我有以下内容

<% @profile_items.each do |pi| %>
  <%= pi.pos %> | 
<% end %>
<%= f.fields_for :profile_items do |f2| %>
  <%= render 'profile_item_fields', :f => f2 %>
<% end %>

前 3 行是测试代码,用于显示 @profile_items 的顺序正确。 但当它们被渲染时,它们就失去了排序的顺序!

现在我已经寻找了很多答案,我认为这一定是一个常见的“陷阱” 掉进。

感谢您的任何帮助...


根据 Rails 文档字段_for http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for,您还可以在记录名称后指定记录对象。

所以像这样的东西应该有效......

<%= f.fields_for :profile_items, @profile_items do |f2| %>
  <%= render 'profile_item_fields', :f => f2 %>
<% end %>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 fields_for - 排序顺序丢失 的相关文章

随机推荐