SORU
24 ŞUBAT 2010, ÇARŞAMBA


Uzanan ActiveRecord::raylar Bankası

ActiveRecord genişletme hakkında biraz okuma yaptım:Temel sınıf benim modeller bazı özel yöntemleri var. (Adım adım öğretici) genişletmek için kolay yolu nedir?

CEVAP
24 ŞUBAT 2010, ÇARŞAMBA


Çeşitli yaklaşımlar vardır :

ActiveSupport::Kullanarak Endişe (Tercih Edilen)

Daha fazla ayrıntı için ActiveSupport::Concern belgeleri okuyun.

Bir dosya lib dizin active_record_extension.rb oluşturun.

module ActiveRecordExtension

  extend ActiveSupport::Concern

  # add your instance methods here
  def foo
     "foo"
  end

  # add your static(class) methods here
  module ClassMethods
    #E.g: Order.top_ten        
    def top_ten
      limit(10)
    end
  end
end

# include the extension 
ActiveRecord::Base.send(:include, ActiveRecordExtension)

config/initializers dizin extensions.rb adlı bir dosya oluşturmak ve bu dosyaya aşağıdaki satırı ekleyin:

require "active_record_extension"

Miras (Tercih Edilen)

Toby bakın. answer.

Maymun yama (kaçınılmalıdır)

config/initializers dizin active_record_monkey_patch.rb adlı bir dosya oluşturun.

class ActiveRecord::Base     
  #instance method, E.g: Order.new.foo       
  def foo
   "foo"
  end

  #class method, E.g: Order.top_ten        
  def self.top_ten
    limit(10)
  end
end

Jamie Zawinski Düzenli ifadeler hakkında şu ünlü sözü yeniden amaçlı sorunları maymun-yama ile ilişkili göstermek için olabilir.

Bir sorun ile karşı karşıya zaman bazı insanlar, “ben bilirim, kullanırım sanırım maymun yama.” Şimdi iki sorun var.

Maymun yama kolay ve hızlı. Ancak, zaman ve çaba kaydedilen her zaman geri çıkarılır bileşik faiz ile gelecekte;. Bu gün maymun yama hızlı raylar bir çözüm, bir konsol prototip için sınırlandırıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andyabc45

    andyabc45

    1 Mayıs 2011
  • cyriak

    cyriak

    29 Mart 2006
  • LAHWF

    LAHWF

    5 Kasım 2009