Je n'ai pas vraiment trouvé cela dans la documentation de Rails mais il semble que «mattr_accessor» soit le corollaire du module pour «attr_accessor» (getter & setter) dans une classe Ruby normale .
Par exemple. dans une classe
class User
attr_accessor :name
def set_fullname
@name = "#{self.first_name} #{self.last_name}"
end
end
Par exemple. dans un module
module Authentication
mattr_accessor :current_user
def login
@current_user = session[:user_id] || nil
end
end
Cette méthode d'assistance est fournie par ActiveSupport .
mattr_accessor
serait court pour les variables d'instance de classe@variable
, mais le code source semble révéler qu'ils définissent / lisent en fait des variables de classe. Pouvez-vous expliquer cette différence?