Rails 3.2 と Ruby 1.9.3 を使用しています。
これが何度も尋ねられていることは知っていますが、私の特定の状況では何も見つかりません.
私の関係は次のようなものです。製品には多くのカテゴリがあり、カテゴリには多くの属性があります。
ビューにネストされたフォームを作成したいので、使用しています
= f.fields_for :categories do |category|
= render 'category_fields', :f => category
商品フォームにカテゴリ フィールドを「添付」するため。
問題は、それを HTML に変換すると、カテゴリ入力の名前が次のように「categories_attributes」になることです。
<label for="product_categories_attributes_0_name">Name</label>
<input id="product_categories_attributes_0_name" type="text" size="30" name="product[categories_attributes][0][name]">
私はレールに慣れていませんが、product[categories][0][name]
代わりにすべきだと思いcategories_attributes
ます。
フォームを送信すると、
Can't mass-assign protected attributes: categories_attributes
また、私のモデル:
class Product < ActiveRecord::Base
belongs_to :company
belongs_to :product_type
has_many :categories, :dependent => :destroy
accepts_nested_attributes_for :categories
attr_accessible :comments, :name, :price
end
class Category < ActiveRecord::Base
belongs_to :product
has_many :attributes, :dependent => :destroy
attr_accessible :name
accepts_nested_attributes_for :attributes
end
class Attribute < ActiveRecord::Base
belongs_to :category
attr_accessible :name, :value
end
ほんのわずかなエラーであることは間違いありませんが、それを見つけることはできません。
ヘルプ?