Благодаря помощи людей ранее я узнал, как сериализовать вложенный хэш в один столбец. Хотя мне удалось сгенерировать поля формы на нескольких уровнях и вернуть значения полей обратно в строку, я не могу сохранить различные уровни для хэша.
Мой хэш выглядит следующим образом:
Мой код выглядит так:
<% 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 %>
Последняя строка хеша в моем примере принимает данные для двух категорий и должна выглядеть примерно так, как показано в следующей строке: категории должны выглядеть следующим образом:
{"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" />
То, что я на самом деле хочу, это продукт [категории] [0] [активный] и продукт [категории] [1] [активный].
Есть предложения о том, как подойти к этому?