Я сгенерировал модель "Test" с полем с именем 'scale', которое является массивом.
Для простоты предположим, что это всегда будет Массив из 20 целых чисел, который представляет шкалу оценки (т.е. 1 = 5-й процентиль, 2 = 7-й процентиль ... вплоть до 20 = 99-й процентиль)
Я знаю эти значения заранее, если будет время, и я хочу создать / отредактировать все значения массива в той же форме, в которой я создаю / редактирую тесты.
Я понял, какполучить хэш params для возврата «масштабного» хеша со следующим кодом:
<%= form_for(@test) do |f| %>
<div>
<%= f.fields_for 'scale', do |scale_form| %>
<% for i in 1..20 %>
<div>
<%= scale_form.text_field("#{i}")%>
</div>
<% end %>
<% end %>
</div>
Это делает входные данные формы, которые выглядят так:
<div>
<input id="test_scale_1" name="test[scale][1]" size="30" type="text" />
</div>
<div>
<input id="test_scale_2" name="test[scale][2]" size="30" type="text" />
и, по сути, позволяет мне хранить хешс последовательными целочисленными ключами.
Чтобы создать массив, мне нужно, чтобы скобки после [scale] были пустыми.Я не видел ни одного помощника по формам, который позволял бы мне это делать.
Так что я думаю, что я в порядке, используя хеш, если я должен.Хотя я думаю, что Array лучше вписывается в ситуацию.И я могу использовать форму для хранения всех значений хеша одновременно.
Моя последняя важная проблема - как заставить хэш повторно заполнить форму, когда я пытаюсь ее отредактировать?Мой текущий подход работает для настройки, но не для получения.
Этот вопрос был значительно переработан, так как я приближаюсь к решению ... спасибо за помощь.