Nie mogłem znaleźć tego w dokumentacji Railsów, ale wygląda na to, że 'mattr_accessor' jest następstwem modułu 'attr_accessor' (getter & setter) w normalnej klasie Ruby .
Na przykład. w klasie
class User
attr_accessor :name
def set_fullname
@name = "#{self.first_name} #{self.last_name}"
end
end
Na przykład. w module
module Authentication
mattr_accessor :current_user
def login
@current_user = session[:user_id] || nil
end
end
Ta metoda pomocnicza jest udostępniana przez ActiveSupport .
mattr_accessor
byłoby to skrótem od zmiennych instancji klasy@variable
, ale kod źródłowy wydaje się ujawniać, że w rzeczywistości ustawiają / odczytują zmienne klas. Czy mógłbyś wyjaśnić tę różnicę?