関連付けの入力がグループ化されている関連付けの新しいレコードを送信できるフォームを作成しようとしています。
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|
しかし、これにより「配列の未定義のメソッド値」というエラーが発生します。