我有一个有多个问题的feedback_answers变量。 对于每个问题,我需要创建一组单选按钮和一个复选框。 所以我在主要的rhtml中写了这个:
<% form_for @feedback_answers do|answers_form| %>
<% @feedback_answers.each do |q| %>
<tr class="answerRow">
<td><%= q.question.body %></td>
<td><%= render :partial => "radios_with_cb", :locals => {:feedback_answer => q} %></td>
</tr>
<% end %>
<% end %>
然后在部分我有这个:
<% fields_for :feedback_answer do |f| %>
<%= f.radio_button :answer_grade, 1 %> 1
<%= f.radio_button :answer_grade, 2 %> 2
<%= f.radio_button :answer_grade, 3 %> 3
<%= f.radio_button :answer_grade, 4 %> 4
<%= f.radio_button :answer_grade, 5 %> 5
<%= f.check_box :answer_grade %> <%= l(:cb_unrelated) %>
<% end %>
但我得到错误。有人可以帮忙吗?
答案 0 :(得分:0)
我看到几个问题:
form_for
应该包裹单个对象,而不是像form_for @feedback_answers
那样包装多个对象。<%= form_for ...
代替<% form_for ...
。form_for
中,您应该使用表单生成器对象(在您的情况下称为answer_form
)进行对象交互。因此,我希望更像<% @feedback_answers.each do |q| %>
<% answer_form.feedback_answers.each do |q| %>
<%= render :partial => "radios_with_cb", :locals => {:answers_form => answers_form, :feedback_answer => q} %>
。fields_for
语句,因此您需要:<%= answers_form.fields_for :feedback_answer do |f| %>
fields_for
显示在页面中,则需要使用ERB输出块,因此<%= answers_form.fields_for ...