Я разрабатываю приложение для мелочей, которое ставит вопрос и берет ответ с одной из четырех кнопок в сетке 2x2. Я создаю каждую кнопку как отдельную форму и добавляю входные данные со скрытыми полями. Я использую remote: true, чтобы передавать эти данные на рельсы через ненавязчивый javascript. К сожалению, у меня возникают некоторые очень странные ошибки в приложении для викторины, так как ложные ответы иногда проходят, когда нажата кнопка правильного ответа. Пройдя через свой контроллер и просматривая довольно долгое время, я убежден, что происходит что-то неуловимое, и неправильная форма отправляется браузером.Неверные данные формы получаются в Rails
Ответ на этот вопрос формы на мой взгляд, создаются так:
<div id="answers">
<% @choices.each_slice(2) do |first_two| %>
<div class="row">
<% first_two.each do |choice| %>
<div class="col-md-6">
<%= form_for(@exam, remote: true) do |f| %>
<%= hidden_field_tag 'answer', choice.id %>
<%= hidden_field_tag 'fIndex', @facts.index(@currentFact) %>
<% fact_index = @facts.index(@currentFact) %>
<%= f.submit "#{choice.answer}", class: "btn btn-default btn-answer #{answer_size(choice.answer)} ", id: "answer#{choice.id}" %>
<% end %>
</div>
<% end %>
</div>
<% end %>
Вы заметите, что каждая форма имеет тот же идентификатор (не хорошо) и класс, и я думаю, что это источник моего боль. Как я могу это изменить? Я бы предпочел не делать этого таким образом и просто передать свои данные формы через помощник link_to
с методом: post, но я не думаю, что это возможно. Какие-либо предложения?