我正在尝试使用 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 实例属性的模块。