我在标记控制器中有一个新动作。当用户点击“新标记”时,我需要显示一个包含该学生论文列表的表单。每篇论文都有一个用户需要选择的选项列表。
模型之间的关联是:
Mark.rb
belongs_to :paper
paper.rb
has_many :options
Option.rb
belongs_to :paper
在@mark的表格中,我需要使用'formtastic'显示所有论文和选项列表。
我试过了,
<% @array_papers.each do |paper| %>
<% options = paper.options %>
<%= semantic_form_for paper, url:thinking_marks_path(student_id: @student.id) do |form| %>
<li class="each-question">
<%= form.input :paper, label: "{paper[:name]}" %>
<%= semantic_fields_for :options, paper.object.options do |option| %>
<%= option.input :option, as: :check_boxes %>
<% end %>
</li>
<% end %>
</ul>
<p> <%= link_to 'Save',thinking_marks_path( student_id: @student.id ), :class => 'simple-button course-type' %>
</p>
<% end %>
但是它引发了错误:
undefined method `option' for #<Paper:0x0000000fe6d3e0>
我该怎么办?
答案 0 :(得分:0)
form
变量是paper
对象的形式。
我建议您更好地命名表单变量,例如。 paper_form
和option_form
。
此代码应该有效:
<%= semantic_fields_for :options, paper.object.options do |option_form| %>
<%= option_form.input :option, as: :check_boxes %>
<% end %>