Ich konnte nicht wirklich diese Dokumentation in Rails finden , aber es scheint , wie ‚mattr_accessor‘ ist das Modul logische Folge für ‚attr_accessor‘ (Getter & Setter) in einer normalen Ruby - Klasse .
Z.B. in einer Klasse
class User
attr_accessor :name
def set_fullname
@name = "#{self.first_name} #{self.last_name}"
end
end
Z.B. in einem Modul
module Authentication
mattr_accessor :current_user
def login
@current_user = session[:user_id] || nil
end
end
Diese Hilfsmethode wird von ActiveSupport bereitgestellt .
mattr_accessor
dies für Klasseninstanzvariablen kurz ist@variable
, aber der Quellcode scheint zu zeigen, dass sie tatsächlich Klassenvariablen setzen / lesen. Könnten Sie bitte diesen Unterschied erklären?