2

私のモデルは次のようになります (この質問のために必要最低限​​のものを取り除いています):

class Translation < ActiveRecord::Base
  has_many :array_resources
end
class ArrayResource < ActiveRecord::Base
  attr_accessible :array_items
  has_many :array_items
  accepts_nested_attributes_for :array_items
end

ここで、はハッシュの配列で、各ハッシュには別のハッシュの配列にマップされたキーも含まれていTranslationます。array_resources.build(params)params:array_items

残念ながら、次のエラーが表示されます。

ActiveRecord::AssociationTypeMismatch in ProjectsController#create

ArrayItem(#69835262797660) が必要で、Hash(#18675480) を取得しました

私が読んだ他のすべての回答は、を使用することについて話しましaccepts_nested_attributes_forたが、私はすでにそれを行っています。ヘルプ?

4

1 に答える 1

2

ネストされた属性にarray_items直接割り当てるのではなく、array_items_attributes.

アクセス可能にする必要が:array_items_attributesあります:

class ArrayResource < ActiveRecord::Base
  attr_accessible :array_items_attributes

次に、params ハッシュで の:array_items_attributes代わりにキーを使用します:array_items

于 2012-05-23T19:33:06.570 に答える