formtastic - 表单字段中具有has_many的对象数组

时间:2015-01-13 12:55:14

标签: ruby-on-rails associations has-many formtastic

我在标记控制器中有一个新动作。当用户点击“新标记”时,我需要显示一个包含该学生论文列表的表单。每篇论文都有一个用户需要选择的选项列表。

模型之间的关联是:

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>

我该怎么办?

1 个答案:

答案 0 :(得分:0)

form变量是paper对象的形式。

我建议您更好地命名表单变量,例如。 paper_formoption_form

此代码应该有效:

  <%= semantic_fields_for :options, paper.object.options do |option_form|  %>
    <%= option_form.input :option, as: :check_boxes %>
  <% end %>