您好我正在尝试使用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 %>
答案 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