#html #ruby-on-rails #ruby-on-rails-4 #web #erb
#HTML #ruby-on-rails #ruby-on-rails-4 #веб #ошибка
Вопрос:
Для моего ERB, если есть флажки с одинаковыми значениями, но для разных форм, после нового рендеринга из-за ошибки создания флажки для разных форм с одинаковым значением будут проверены. Похоже, что их разные идентификаторы не имеют значения.
У меня есть несколько флажков для параметра модели с двумя столбцами: размер и: цвет. В настоящее время я использую более крупную модель, чтобы accept_nested_attributes для модели Option.
В моей форме для каждого параметра я устанавливаю флажок со скрытым значением для цвета и флажок для размера таким образом, чтобы:
<%= form_for @big do |big| %>
<%= f.fields_for :options do |option| %>
<%= f.hidden_field :color, value: "Red" %>
<%= f.check_box :size, {}, "Small", nil %>
<% end %>
<%= f.fields_for :options do |option| %>
<%= f.hidden_field :color, value: "Blue" %>
<%= f.check_box :size, {}, "Small", nil %>
<% end %>
.....
<% end %>
Приведенные выше параметры имеют уникальные идентификаторы в соответствии с html и все остальное, но просто проверяются одинаково, что, как я подозреваю, связано с одним и тем же значением.
Есть ли какой-либо способ предотвратить такое поведение?
Ответ №1:
Я решил проблему. Это было более глубоко укоренилось в моей убогой практике контроллера, смешанной с чрезмерным использованием ERB fields_for.
Итак, для моего контроллера у меня есть только один @bigmodel.options.build, а в контроллере у меня есть четыре параметра f.fields_for. Проблема заключалась в том, что большая модель имела одну ассоциацию с параметрами, и поэтому все параметры обрабатывались одинаково, независимо от вывода html.
Поскольку вывод html был уникальным, представление значения было в порядке — не глючило — но когда что-то выходило из строя на стороне сервера, возникало множество проблем, связанных с html.