2009-07-26 16 views
66

Hücresel (tek parça giysi) olmak istediğim "giyim" adlı bir modelim var. Varsayılan olarak, raylar çoğulun giysiler olduğunu söylüyor. Doğru ya da yanlış, çoğul "giysi" ise daha okunabilir olacağını düşünüyorum.Rayları adlandırma kurallarını nasıl geçersiz kılarım?

Çoğul adlandırma kuralını nasıl geçersiz kılarım? Bunu modelde doğru yapabilir miyim, bu yüzden tekrar tekrar yapmak zorunda değilim? Bu, rotaların nasıl ele alınacağını nasıl değiştirecek? (Huzurlu mimariyi kullanıyorum)?

+10

Modelinizi giysi ve giysilere nasıl değiştireceğinize ne dersiniz? –

+0

İlgili: http://stackoverflow.com/q/6178900/1505348 – Lucio

cevap

115

RoR uzmanı değilim, ancak bir possible approach buldunuz. Başvurulan siteden config/initializers/inflections.rb dosya içindeki dönüm kuralı ekleyebilirsiniz:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.plural /^(ox)$/i, '\1\2en' 
    inflect.singular /^(ox)en/i, '\1' 

    inflect.irregular 'octopus', 'octopi' 

    inflect.uncountable "equipment" 
end 
+45

Aslında, özel sürümleriniz config/initializers/inflections.rb içinde bulunmalıdır –

+3

Benim gibi tembel olanlar için: 'ActiveSupport :: Inflector.inflections do | inflect | 'Eğer Inflector'ı kendi başına bulamazsa –

+0

yaklaşımınızı beğeniyorum. Çok sayıda "özel" etkileşime sahip olsaydım, bunları bir yaml içine kaydeder ve dosyayı aynı arşivde yüklerdim. – Aldana

27

2+, bunu biraz farklı yapmak gerekir bana iyi çözmek için Ruby ile veritabanı pluralization 2.2.2 pencere veya linux

ActiveRecord::Base.pluralize_table_names = false 
5

bu ekleyin: raylar 2.3.2 ve belki İçin

# Add new inflection rules using the following format 
ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'clothing', 'clothes' 
end 
-1

durdurmaya çalışıyorsanız sizin environment.rb dosya vardı:

ActiveRecord::Base.pluralize_table_names = false 

class Persona < ActiveRecord::Base 
end 


personas = Persona.all 
personas.each do | personita | 
    print "#{personita.idpersona} #{personita.nombre}\n" 
end 

p Persona.count 
İlgili konular