SORU
9 EKİM 2008, PERŞEMBE


Raylar modülünde mattr_accessor nedir?

Gerçekten bu belgeleri Raylar ama görünüşe göre bulamadım< . '' . mattr_accessor ^güçlü Modüliçin doğal sonucu< . '' . attr_accessor ^güçlü (alıcı ve ayarlayıcı) normal bir Yakutsınıf.

Örn. bir sınıfta

class User
  attr_accessor :name

  def set_fullname
    @name = "#{self.first_name} #{self.last_name}"
  end
end

Örn. bir modül

module Authentication
  mattr_accessor :current_user

  def login
    @current_user = session[:user_id] || nil
  end
end

Bu yardımcı yöntem sağladıActiveSupport.

CEVAP
9 EKİM 2008, PERŞEMBE


Raylar mattr_accessor (Modül erişimci) cattr_accessor (_reader/_writer sürümleri) ile Ruby uzanır. Ruby attr_accessor alıcı/ayarlayıcı yöntemleri için oluştururörnekleri, cattr/mattr_accessor de alıcı/ayarlayıcı yöntemleri sağlamaksınıfyamodülseviye. Böylece:

module Config
  mattr_accessor :hostname
  mattr_accessor :admin_email
end

kısa

module Config
  def self.hostname
    @@hostname
  end
  def self.hostname=(hostname)
    @@hostname = hostname
  end
  def self.admin_email
    @@admin_email
  end
  def self.admin_email=(admin_email)
    @@admin_email = admin_email
  end
end

Her iki sürümü de şu şekilde: modül düzeyinde değişkenlere erişmek için izin verir

>> Config.hostname = "example.com"
>> Config.admin_email = "admin@example.com"
>> Config.hostname # => "example.com"
>> Config.admin_email # => "admin@example.com"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FF Radio

    FF Radio

    16 Mayıs 2008
  • Jeremy Gallman

    Jeremy Gallm

    11 NİSAN 2012
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007