如何为嵌套属性指定attr_accessible?

时间:2012-09-04 20:53:49

标签: ruby-on-rails-3.2 attr-accessible

从文档中,我看到如果我有一个模型:

User has_many Addresses

我可以这样做:

class User < AR::Base

  attr_accessible :addresses_attributes
  accepts_nested_attributes_for :addresses

end

我应该可以从User设置这些属性。但我不能。我是否还需要在地址模型中添加“attr_accessible”标注?

1 个答案:

答案 0 :(得分:1)

是的,您还必须在地址模型上设置attr_accessible。

当ActiveRecord使用属性哈希初始化实例时,如果未被attr_accessible标记的属性是哈希键的一部分,它将引发异常。由于在关联中,ActiveRecord对象使用属性哈希进行初始化,因此无法使用attr_accessible在地址模型中声明这些属性。