2011-03-10 10 views
7

क्या रेलों को नियंत्रकों का जिक्र करते समय अंडरस्कोर के बजाय डैश (-) का उपयोग करने के लिए मजबूर करना संभव है।अंडरस्कोर के बजाए डैश के साथ रेल नियंत्रक नाम

वर्तमान में Inflector का एक अच्छा फ़ंक्शन मौजूद है जिसे parameterize कहा जाता है।

resources :contact_methods 

: यह जब नियंत्रक कई शब्दों (जैसे contact_methods_controller.rb उदाहरण के लिए) है का उपयोग करते हुए,

हटा दिया और डैश के साथ प्रतिस्थापित सभी विशेष पात्रों के साथ बहुत अच्छा पर्मालिंक्स लिए अनुमति देता है ... लेकिन, आप अपने मार्ग को परिभाषित यह /contact_methods पर नक्शा बनाता है (/contact-methods नहीं)।

/contact_methods/1-preferred-email 

मैं रेल मानचित्र नियंत्रकों अंडरस्कोर के बजाय डैश से करना चाहते हैं: जब मैं इन दोनों का मिश्रण है, मैं की तरह बदसूरत यूआरएल मिलता है। मेरे सभी अनुसंधान व्यक्तिगत रूप से प्रत्येक नियंत्रक मैप करने के लिए कहते हैं:

match 'contact-methods(/:action)' => 'contact_methods' 

लेकिन वह वास्तव में बेवकूफ है, मेरी राय में, और यह अगर मैं घोंसले संसाधनों हूँ ... मैं कस्टम रूप में निर्धारित कर नहीं होना चाहिए गंदा हो जाता है मार्गों। क्या ActionDispatch में कोई सेटिंग है जो स्वचालित रूप से इन चीजों को फिर से लिखती है? मैं एक ...

उत्तर

10

अपने route.rb में नहीं मिल सकता है

resources "contact-methods", :controller => :contact_methods, :as => :contact_methods 

संपादित करें: आप :as => ... पथ निर्दिष्ट करने के लिए है या फिर ActionDispatch एक फिट फेंकता है ...

+0

मैं था अपने उत्तर को थोड़ा सा संशोधित करने के लिए, लेकिन धन्यवाद! – sethvargo

+0

हाहा मैं वहां जा रहा था ... मैंने संपादन शुरू करने से पहले टिप्पणी की :) – sethvargo

+0

हाँ, आप सही हैं, thanx :) – fl00r

संबंधित मुद्दे