我正在尝试使用 active_attr gem 创建由 NoSQL 数据库支持的模型,该数据库似乎没有任何其他符合我们需求的 ORM 或映射器。
在文档 ( https://github.com/cgriego/active_attr ) 中,它显示了定义属性的示例,仅attribute使用attr_accessor. 我不太确定我看到了区别。有人能解释一下我什么时候应该使用另一种吗?
我正在尝试使用 active_attr gem 创建由 NoSQL 数据库支持的模型,该数据库似乎没有任何其他符合我们需求的 ORM 或映射器。
在文档 ( https://github.com/cgriego/active_attr ) 中,它显示了定义属性的示例,仅attribute使用attr_accessor. 我不太确定我看到了区别。有人能解释一下我什么时候应该使用另一种吗?
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=),然后另外添加至少另一个方法first_name?。
它似乎attr_accessor与增加 Class ( MassAssignment, BlockInitialization) 的模块一起使用,而attribute用于直接增加 Class 实例属性的模块。