批量分配2级深度?

时间:2012-05-23 18:59:59

标签: ruby-on-rails ruby-on-rails-3

我的模型看起来像这样(对于这个问题,最低限度):

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 :: AssociationTypeMismatch      

ArrayItem(#69835262797660)预计得到哈希(#18675480)

我读到的每个其他答案都谈到了使用accepts_nested_attributes_for,但我已经这样做了。帮助

1 个答案:

答案 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