我尝试使用active_attr gem来创建由NoSQL数据库支持的模型,该数据库似乎没有任何其他符合我们需求的ORM或映射器。
在文档(https://github.com/cgriego/active_attr)中,它显示了仅使用attribute
定义属性的示例,有时使用attr_accessor
。我不太确定我看到了区别。有人可以解释我何时应该使用一个而不是另一个?
答案 0 :(得分:2)
attr_accessor
是一种Ruby方法,attribute
是active_attr
的自定义方法。
例如:
class User
include ActiveAttr::QueryAttributes
attribute :first_name
end
User.new.first_name?
在上文中,attribute :first_name
将使用attr_accessor
创建基本的getter / setter(first_name
和first_name=
),然后另外添加另一个方法{{1 }}
似乎first_name?
与增强类(attr_accessor
,MassAssignment
)的模块一起使用,而BlockInitialization
用于直接增强类实例属性的模块