formtastic - 表单字段中带有 has_many 的对象数组
Posted
技术标签:
【中文标题】formtastic - 表单字段中带有 has_many 的对象数组【英文标题】:formtastic - array of objects with has_many in the form field 【发布时间】: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>
我该怎么办?
【问题讨论】:
【参考方案1】:form
变量是paper
对象的形式。
我建议您更好地命名表单变量,例如。 paper_form
和 option_form
。
这段代码应该可以工作:
<%= semantic_fields_for :options, paper.object.options do |option_form| %>
<%= option_form.input :option, as: :check_boxes %>
<% end %>
【讨论】:
以上是关于formtastic - 表单字段中带有 has_many 的对象数组的主要内容,如果未能解决你的问题,请参考以下文章
动态嵌套表单总是创建一个额外的空白条目 - 使用 formtastic_coocoon
fields_for、formtastic、ActiveMerchant 和验证错误