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
执行上述操作后,您可以批量分配不会保存到数据库的虚拟属性。正确的吗?
答案 0 :(得分:2)
attr_accessible
不会创建访问者。
Activerecord自动为数据库列生成访问器。 attr_accessible
和attr_protected
只是控制是否从update_attributes
等方法调用它们(并且可以与任何访问器方法一起使用,而不仅仅是数据库列支持的方法)
答案 1 :(得分:0)
是强>
attr_accessible
创建getter和setter。
attr_accessible
通常用于具有相应表的模型,而attr_accessor
用于没有相应数据库表的模型。