代码之家  ›  专栏  ›  技术社区  ›  RubyRedGrapefruit

如何为嵌套属性指定attr_accessible?

  •  0
  • RubyRedGrapefruit  · 技术社区  · 13 年前

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

    User has_many Addresses
    

    我可以做到:

    class User < AR::Base
    
      attr_accessible :addresses_attributes
      accepts_nested_attributes_for :addresses
    
    end
    

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

    1 回复  |  直到 13 年前
        1
  •  1
  •   Erez Rabih    13 年前

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

    当ActiveRecord使用属性哈希初始化实例时,当未被attr_accessible标记的属性是哈希键的一部分时,它将抛出异常。由于关联中的ActiveRecord对象是用属性的散列初始化的,因此无法在Address模型中用attr_accessible声明这些属性。

    推荐文章