我的模型看起来像这样(对于这个问题,最低限度):
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
键,映射到另一个哈希数组。
不幸的是,我收到以下错误:
ProjectsController #create
中的ActiveRecord :: AssociationTypeMismatchArrayItem(#69835262797660)预计得到哈希(#18675480)
我读到的每个其他答案都谈到了使用accepts_nested_attributes_for
,但我已经这样做了。帮助
答案 0 :(得分:2)
您不应直接分配嵌套属性array_items
,而应array_items_attributes
。
您应该:array_items_attributes
可访问:
class ArrayResource < ActiveRecord::Base
attr_accessible :array_items_attributes
然后在你的params哈希中使用密钥:array_items_attributes
而不是:array_items
。