感谢之前人们的帮助,我掌握了如何将嵌套哈希序列化为单个列的方法。虽然我能够在多个级别生成表单字段并将字段的值返回到字符串中,但我无法为哈希保留不同的级别。
我的哈希如下所示:
我的代码如下所示:
<% categoryvalue.each do |categoryproperty, categorypropertyvalue| %>
<div>
<%= f.fields_for :categories, categoryproperty do |categoryattribs| %>
<%= categoryattribs.label categoryproperty %> <br/>
<%= categoryattribs.text_field categoryproperty, :value => categorypropertyvalue %> <br/>
<% end %>
</div>
<% end %>
我的示例中的最终哈希字符串采用两个类别的数据,并且在分配给 :categories 时必须类似于以下字符串,应如下所示:
{"0" => {"Active"=>"yes", "totalproducts"=>"100", "segment"=>"Premium"}, "1" => "Active"=>"yes", "totalproducts"=>"190"}}
但是,字符串以以下形式出现:
{"Active"=>"yes", "totalproducts"=>"100", "segment"=>"Premium", "Active"=>"yes", "totalproducts"=>"190"}
有没有办法区分一个类别的属性并在主散列中有两个单独的散列?现在,一切都被压平到一个单一的水平。这在如何生成输入字段的 id 和名称中很明显。请参阅下面的示例:
<input id="product_categories_Active" name="product[categories][Active]" size="30" type="text" value="%" />
<input id="product_categories_Active" name="product[categories][Active]" size="30" type="text" value="lbs" />
我真正想要的是product[categories][0][Active] 和product[categories][1][Active]。
关于如何解决这个问题的任何建议?