我正在尝试创建一个表单,该表单允许我为关联输入分组的关联提交新记录。
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|
但这给出了一个错误“数组的未定义方法值”。