有关如何使其增加的任何想法?
# in controller: 3.times {@item.assets.build}<% number = 1 %><div ID='files'> <%= f.fIElds_for :assets,:child_index => number do |asset| %> <p> number:<%= number %><br /> <%=asset.label :asset,"file ##{number += 1}" %> <%= asset.file_fIEld :asset %> </p><% end %></div><%= f.submit %>
编辑:
所以在HTML中所有这些都将具有如下形式:
item[assets_attributes][0][asset]
而不是期望的:
menu_item[assets_attributes][0][asset]menu_item[assets_attributes][1][asset] menu_item[assets_attributes][2][asset]
编辑#2:
所以通过源代码查看,我看到以下内容并且想知道rails是否应该进行一些自动交换,并且可能没有发生这种情况;
<input ID="item_assets_attributes_0_asset" name="item[assets_attributes][0][asset]" type="file" /><input ID="item_assets_attributes_0_ID" name="item[assets_attributes][0][ID]" type="hIDden" value="1" />解决方法 通过Rails源查看,很明显,如果指定:child_index,则不会有自动增量.这是否是正确的行为是值得商榷的.如果在调用fIElds_for时完全省略:child_index,则应该获得所需的索引.
要为每个字段获取正确的标签,您可以使用一些JavaScript.如果您不喜欢,可以将文件编号设置为Asset类的属性.
class Asset < AR attr_accessor :file_numberend# in controller: 3.times {|n| @item.assets.build(:file_number => n) }<div ID='files'> <%= f.fIElds_for :assets do |asset| %> <p> <%=asset.label :asset,"file ##{asset.file_number}" %> <%= asset.file_fIEld :asset %> </p><% end %></div><%= f.submit %>总结
以上是内存溢出为你收集整理的ruby-on-rails – Rails 3.1 – :fields_for,:child_index不递增全部内容,希望文章能够帮你解决ruby-on-rails – Rails 3.1 – :fields_for,:child_index不递增所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)