Bir Rails 3 uygulamasından bir Gem'e gömülü bir sınıfı genişletmek istesem sınıf davranışını class_eval
ve modüllerle (miras yoluyla değil) genişletmenin yolu nedir? Raylar 3'te Gemiler Sınıflarını (class_eval ve Modüller aracılığıyla) Nasıl/Ne Zaman/Nerede Uzatabilirim?
bir örnek
şudur: Ben etiketleri ve kategoriler için kalıcı bağlantı oluşturma yeteneği eklemek istediğiniz(ActsAsTaggableOn ve ActsAsCategory taşlar aracılığıyla).
Tag
ve Category
modellerini tanımlamışlardır.
Temelde bunu yapmak istiyorum:
Category.class_eval do
has_friendly_id :title
end
Tag.class_eval do
has_friendly_id :title
end
mücevher özgü olabilir bu özellikler ekleyen başka yolları da var olsa bile
, bir Rails 3 sınıflara davranışı eklemek için önerilen yol nedir Bunun gibi uygulama?
Configuration
model ve Asset
modeli gibi bunu yapmak istediğim birkaç tane daha oluşturulmuş değerli taş var. Uygulamam için app/models/configuration.rb
model sınıfı oluşturmayı eklemek istiyorum ve class_eval
yaptım.
Neyse, bunun nasıl çalışması gerekiyor? Şu anki Rails 3 bloglarından/docs/gistlerinden herhangi birini kapsayan bir şey bulamıyorum.
Aynı konuyu ele alıyorum 'LoadError: Tag. – MhdSyrwan
'u tanımlamak için LoadError: Beklenen uygulama/modeller/tag.rb:" tag.rb "dosyanızın içinde, tanımlanacak ilk sınıfın çağrılması gerektiği anlamına gelir. tam olarak "Tag", bu yüzden sadece doğru yolu isimlendirmediniz. –