attr_accessible是否会创建getter和setter?

时间:2014-06-25 20:11:10

标签: ruby-on-rails

attr_accessible是否会创建getter和setter?

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

attr_accessor :email
attr_accessible :email

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

对于rails 4,我知道要使用强参数,那么最好只使用attr_accessor吗?

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

  

attr_accessor在attr_accessible允许的情况下生成getter和setter   传递质量分配中的值。

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

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

attr_accessor :email
attr_accessible :email

执行上述操作后,您可以批量分配不会保存到数据库的虚拟属性。正确的吗?

2 个答案:

答案 0 :(得分:2)

attr_accessible不会创建访问者。

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

答案 1 :(得分:0)

attr_accessible创建getter和setter。

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