Non sono riuscito a trovarlo nella documentazione di Rails ma sembra che 'mattr_accessor' sia il corollario del modulo per 'attr_accessor' (getter & setter) in una normale classe Ruby .
Per esempio. in una classe
class User
attr_accessor :name
def set_fullname
@name = "#{self.first_name} #{self.last_name}"
end
end
Per esempio. in un modulo
module Authentication
mattr_accessor :current_user
def login
@current_user = session[:user_id] || nil
end
end
Questo metodo di supporto è fornito da ActiveSupport .
mattr_accessor
sarebbe l'abbreviazione di variabili di istanza di classe@variable
, ma il codice sorgente sembra rivelare che in realtà stanno impostando / leggendo variabili di classe. Potresti spiegare questa differenza?