ActiveAttr gem中attribute和attr_accessor的区别



我正在尝试使用active_attr gem来创建由NoSQL数据库支持的模型,该数据库似乎没有任何其他orm或映射器适合我们的需求。

在文档(https://github.com/cgriego/active_attr)中,它展示了仅使用attribute和有时使用attr_accessor定义属性的示例。我看不出有什么区别。有人能解释一下什么时候我应该用其中一个而不是另一个吗?

attr_accessor是Ruby方法,attributeactive_attr的自定义方法。

例如:

class User
  include ActiveAttr::QueryAttributes
  attribute :first_name
end
User.new.first_name?

在上面,attribute :first_name将使用attr_accessor创建基本的getter/setter (first_namefirst_name=),然后额外添加至少另一个方法first_name?

似乎attr_accessor与增强类(MassAssignment, BlockInitialization)的模块一起使用,而attribute用于直接增强类实例属性的模块。

相关内容

  • 没有找到相关文章

最新更新