2010-07-26 20 views
5

İki modele bir yöntem eklemek istedim, bu yüzden böyle bir modül yaptım ve her iki modele dahil ettim. BuDaha sonra, şu şekilde adlandırılan bu yönteme sahip olmak istedim: tüm bu modellerde after_create. Böyle modülünde tüm modellerinde manuel olarak ekleyin ama akıllı olmak istedim ve bunu eklerseniz Çalışıyor:Rails Modülünde filtreden önce/sonra eklenebilir mi?

module UserReputation 
    after_create :check_something 
    def check_something 
    ... 
    end 
end 

Ancak bu işe yaramaz. Bunu gerçekleştirmek için herhangi bir yolu var mı ve after_create kadar DRY?

cevap

10

modül sınıfına base içine karıştırıldığı zaman denir, self.included deneyin:,

module UserReputation 
    def self.included(base) 
    base.after_create :check_something 
    end 
end 
+0

Sen kural sayesinde! –

+0

Ayrıca, sadece takip etmek için, 'self.included (base)' önünde bir 'def' eksiksiniz gibi görünüyor, ama aksi takdirde bu harika çalışıyor. Teşekkürler! –

+0

Sabit. Rica ederim! – giraff

İlgili konular