首页 文章

attr_accessible是否会创建getter和setter?

提问于
浏览
1

attr_accessible是否会创建getter和setter?

我一直在读,attr_accessible和attr_accessor是不同的 . 但在我的代码库中,我一直看到人们写道:

attr_accessor :email
attr_accessible :email

这看起来很奇怪 . attr_accessible不会创建getter和setter吗?

对于rails 4,我知道使用强参数,所以最好只使用attr_accessor吗?

编辑:我已经多次发布了这个帖子:

attr_accessor生成getter和setter,而attr_accessible允许传递质量赋值中的值 .

我的问题更多的是寻找“是”或“否” . 如果答案为否,rails会自动为数据库中的列创建getter和setter吗?

编辑:所以我想我现在就明白了 .

attr_accessor :email
attr_accessible :email

执行上述操作将允许您批量分配不会保存到数据库的虚拟属性 . 正确?

2 回答

  • 2

    attr_accessible 不会创建访问者 .

    Activerecord自动为数据库列生成访问器 . attr_accessibleattr_protected 只是控制是否从 update_attributes 等方法调用它们(并且可以与任何访问器方法一起使用,而不仅仅是数据库列支持的方法)

  • 0

    YES attr_accessible 创建getter和setter .

    attr_accessible 通常用于具有相应表的模型,而 attr_accessor 用于没有相应数据库表的模型 .

相关问题