我在 Rails 文档中找不到类似的内容,但好像 'mattr_accessor' 是一个普通 Ruby 类 中 'attr_accessor'(getter 和 setter)的 模块 对应物。
例如,在一个类中:
class User
attr_accessor :name
def set_fullname
@name = "#{self.first_name} #{self.last_name}"
end
end
例如,在一个模块中
module Authentication
mattr_accessor :current_user
def login
@current_user = session[:user_id] || nil
end
end
这个辅助方法由 ActiveSupport 提供。