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

  • Atlantic Records

    Atlantic Rec

    15 Aralık 2006
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • Techmoan

    Techmoan

    31 Mayıs 2009