2009-07-26 20 views
66

मेरे पास "कपड़ों" नाम का एक मॉडल है जिसे मैं सिंगलुलर (कपड़ों का एक टुकड़ा) बनना चाहता हूं। डिफ़ॉल्ट रूप से, रेल कहते हैं कि बहुवचन कपड़ा है। सही या गलत, मुझे लगता है कि बहुवचन "कपड़े" होने पर यह अधिक पठनीय होगा।मैं रेलवे नामकरण रेलवे को कैसे ओवरराइड कर सकता हूं?

मैं बहुवचन नामकरण सम्मेलन को कैसे ओवरराइड कर सकता हूं? क्या मैं इसे मॉडल में सही कर सकता हूं इसलिए मुझे इसे और अधिक करने की ज़रूरत नहीं है? यह कैसे बदल जाएगा मार्गों को कैसे नियंत्रित किया जाता है (मैं आराम से वास्तुकला का उपयोग कर रहा हूं)?

+10

अपने मॉडल को परिधान और वस्त्रों में बदलने के बारे में कैसे? –

+0

संबंधित: http://stackoverflow.com/q/6178900/1505348 – Lucio

उत्तर

115

मैं कोई RoR विशेषज्ञ नहीं हूं, लेकिन possible approach मिला। संदर्भित साइट से आप config/initializers/inflections.rb फाइल के अंदर मोड़ नियम जोड़ सकते हैं:

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

असल में, आपके कस्टम इन्फ्लिक्शंस को कॉन्फ़िगर/प्रारंभकर्ता/inflections.rb –

+3

में रहना चाहिए जो मेरे जैसे आलसी हैं: 'ActiveSupport :: Inflector.inflections करते हैं। घुमाओ | 'अगर इसे अपने स्वयं के –

+0

पर इन्फलेक्टर नहीं मिला है तो मुझे आपका दृष्टिकोण पसंद है। अगर मेरे पास कई "कस्टम" inflections थे, तो मैं उन्हें एक yaml में सहेजता हूं और फ़ाइल को उसी संग्रह में लोड करता हूं। – Aldana

27

रेल 2.3.2 और हो सकता है के लिए 2 +, आप इसे थोड़ा अलग करने की जरूरत है अपने environment.rb फ़ाइल अगर तुम मेरे लिए अच्छा हल डेटाबेस pluralization को रोकने के लिए

ActiveRecord::Base.pluralize_table_names = false 
5

में इस जोड़ें:

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

रूबी के साथ 2.2.2 विंडोज या लिनक्स की कोशिश कर रहे थे:

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 
संबंधित मुद्दे