在Rails表单中,使用一个提交按钮发送多个模型的数据

时间:2013-11-12 21:58:07

标签: ruby-on-rails forms

我正在使用以下数据模型创建调查:MathTest has_many math_questions

MathTest#update我希望为每个问题创建一个表单。表单应如下所示:

<%= form_for(mathtest) do %>
  <% math_question.each do |question| %>
    <%= f.label :answer %>
    <%= f.text_field :answer %>
    <%= f.hidden_field math_question.id %>
  <% end %>

  <% f.submit %>
<% end %>

我想向MathTest Controller发送一组带有math_question id的元组以及该问题的答案。然后在Controller中,我可以调用另一个方法来评估每个问题的答案。

如何编写表单以发送适当的元组?

1 个答案:

答案 0 :(得分:1)

这应该这样做:

<%= form_for(mathtest) do |f| %>
  <% math_question.each do |question| %>
    <%= f.fields_for :answer do |ff| %>
      <%= ff.label :answer %>
      <%= ff.text_field :answer %>
    <% end %>
  <% end %>

  <% f.submit %>
<% end %>

同时编辑模型:

class MathTest < ActiveRecord::Base
  has_many :math_questions
  accepts_nested_attributes_for :math_questions

fields_for文档:http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for