Daha önce Ruby on Rails ın tablolar ve sınıflar arasında tekil çoğul kelime ilişkileri kurduğunu yazmıştım. Yalnız bu iş türkçe tablo isimlerinde problem çıkardı. Örneğin var olan ogretimuye tablosundan bir model oluşturduğumda bunun için ogretimuyes adında bir tablo arıyor. Mysql in view özelliini kullanarak oluşturduğum sanal tablolar da yalnız okunabilir olduğu için çözümü "config" klasöründe yer alan enviroment.rb dosyasında buldum. Dosyanın sonuna şöyle bir tanım ekleyip
Inflector.inflections do |inflect|
inflect.uncountable %w( ogretimuye )
end
tablomuzu oluşturan ismi uncountable olarak gösterdiğimizde sorun çözülüyor.
Perşembe, Aralık 01, 2005
Kaydol:
Kayıt Yorumları (Atom)
4 yorum:
Rails'te ayarlarda çoğul tablo arama özelliğini kapatabiliyorsunuz.
Bende öyle tahmin ediyorum zaten ama tam olarak nereden yapacağımı bulamadım. Bu sebepten dolayı böyle bir çözüm geliştirdim :)
Akşam evde bakarım. Bir rails projesi var, kendime yardimci ariyorum ilgilenir misin? Bana mail atarsan sevinirim.
huseyin et gomleksizoglu.com
Çoğul Model <> Tablo ismi eşleşmesini, config klasoründeki environment.rb dosyasına ActiveRecord::Base.pluralize_table_names = false yazarak engelleyebilirsiniz.
Eğer sadece tek bir tablo eşleşmesini değiştirmek istiyorsanız model dosyasına set_table_name "tablo_adı" yazabilirsiniz. Sizin durumununuzda
class OgretimUye < AR::Base
set_table_name "ogretimuye"
end
bunu halledecektir.
Inflection, daha çok (railsin ingilizce temelli olması nedeniyle) çoğulu aynı olan modellerin eşlenmesi için. "money,news" vs gibi. Tabi istenilen yontem kullanılabilir ama DHH'ın dediği gibi, rails gelenekçi bir framework.
Yorum Gönder