【发布时间】:2012-08-10 13:03:38
【问题描述】:
我正在尝试创建一个表单,该表单允许我为关联输入分组的关联提交新记录。
class Product < AR::Base
has_many :properties
accepts_nested_attributes_for :properties
end
请注意,在控制器中为产品构建了一系列属性,因此@product.properties.empty? # => false。
下面的fields_for 给了我正确的输入,例如product[properties_attributes][0][value]。
= form.fields_for :properties do |pform|
= pform.input :value
但一旦我尝试对关联进行分组,它就不再生成具有正确名称的输入:
- @product.properties.group_by(&:group_name).each do |group_name, properties|
%h3= group_name
= form.fields_for properties do |pform|
= pform.input :value
这会创建name 属性的输入,例如product[product_property][value],而实际上它应该是product[property_attributes][0][value],根据第一个示例。
Rails 文档建议您可以这样做:
= form.fields_for :properties_attributes, properties do |pform|
但这给出了一个错误“数组的未定义方法值”。
【问题讨论】:
标签: ruby-on-rails-3 fields-for