【发布时间】:2014-02-15 01:35:20
【问题描述】:
我正在开发一个问答应用程序,它提出一个问题并从 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 %>
您会注意到每个表单都有相同的 id(不好)和类,我认为这是我痛苦的根源。我将如何改变这个?我不希望以这种方式做事,而是通过link_to helper 使用method:post 传递我的表单数据,但我认为这是不可能的。有什么建议吗?
【问题讨论】:
标签: javascript html ruby-on-rails forms ruby-on-rails-4