Rails复选框格式化

时间:2015-05-05 19:07:59

标签: ruby-on-rails checkbox

您好我正在尝试使用rails应用程序进行调查。我的rails应用程序有两个模型:问题has_many:答案和答案belongs_to:问题

我试图遍历所有问题及其所有相关答案,并在该相关问题的所有答案上设置复选框选项。我如何制作复选框?这是我到目前为止所拥有的。对于每个问题,是否需要将其包装在表格中?

 <% @questions.each do |question| %>
  <tr>
    <td><%= question.content %></td><br>
    <% question.answers.each do |answer_choice| %>
         <%= form.check_box :answer_choice %>
    <% end %>
  </tr>
  <% end %>

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您想为问题表单中的每个答案创建一个嵌套表单。你可以这样做:

Question.rb设置accepts_nested_attributes_for

class Question< ActiveRecord::Base
  has_many :answers
  accepts_nested_attributes_for :answers

然后你可以制作这样的表格:

 <% @questions.each do |question| %>
    <%= form_for @question do |f|
       <%= f.fields_for :answers do |answer_builder| %>
           <%= answer_builder.check_box :answer_choice %>
       <%end%>
    <%= f.submit %>
    <%end%>
 <% end %>

现在,当您提交问题表单时,答案模型将自动更新。如果您的控制器中有question_params方法,请确保将其设置为允许答案的参数,例如:

def question_params
    params.require(:question).permit(:question_name, answers_attributes: [:answer_choice])
end

Ryan Bates在嵌套表单上有一个很棒的Railscast。 http://railscasts.com/episodes/196-nested-model-form-part-1