【问题标题】:formtastic - array of objects with has_many in the form fieldformtastic - 表单字段中带有 has_many 的对象数组
【发布时间】:2015-01-13 12:55:13
【问题描述】:

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

模型之间的关联是:

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>

我该怎么办?

【问题讨论】:

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


    【解决方案1】:

    form 变量是paper 对象的形式。

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

    这段代码应该可以工作:

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

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 2011-01-12
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 2021-03-17
      相关资源
      最近更新 更多