Как можно получить / установить все значения массива, используя формы в Rails 3.1? - PullRequest
0 голосов
/ 26 октября 2011

Я сгенерировал модель "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 лучше вписывается в ситуацию.И я могу использовать форму для хранения всех значений хеша одновременно.

Моя последняя важная проблема - как заставить хэш повторно заполнить форму, когда я пытаюсь ее отредактировать?Мой текущий подход работает для настройки, но не для получения.

Этот вопрос был значительно переработан, так как я приближаюсь к решению ... спасибо за помощь.

...