यह रेल सम्मेलन है कि एक नियंत्रक एक मॉडल को संभालता है, चाहे उस मॉडल का एक या अधिक उदाहरण रनटाइम के दौरान मौजूद हो सकते हैं। हालाँकि, आपके पास एक रेल एप्लिकेशन हो सकता है जहां (कुछ) नियंत्रक (और संबंधित दृश्य) किसी विशेष मॉडल से जुड़े नहीं हैं, बल्कि कार्यक्षमता के अधिक जटिल सेट को संभालते हैं। इस मामले में, स्वचालित बहुवचन का कोई मतलब नहीं है।
वर्तमान में मैं जिस रेल एप्लिकेशन पर काम कर रहा हूं, वह इस श्रेणी में फिट बैठता है, और यह मेरे लिए बस एक जलन है कि रेल को उम्मीद है कि जिन पहचानकर्ताओं को मैं एक स्थान पर एक विलक्षण के रूप में परिभाषित करता हूं, उनका उपयोग अन्य स्थानों पर उनके बहुवचन रूपों में किया जाता है। उदाहरण के लिए, मैं कुछ इस तरह परिभाषित करना चाहता हूँ config/routes.rb
:
resource :dashboard, :only => [:show]
और फिर मैं एक नियंत्रक DashboardController
को आवेदन की कुछ पहलुओं के बारे में सारांश जानकारी प्रदर्शित करना चाहता हूं , एक से अधिक डेटाबेस तालिका से जानकारी इकट्ठा करना। इसलिए यहां, Dashboard
एप्लिकेशन के किसी भी मॉडल का उल्लेख नहीं किया गया है, और नियंत्रक का नाम होना अजीब होगाDashboardsController
।
मुझे इस उत्तर में स्वचालित बहुवचन की जलन का एक अच्छा समाधान मिला । संक्षेप में, फ़ाइल को संपादित करें config/initializers/inflections.rb
और उन शब्दों को जोड़ें जिन्हें आप इस परिभाषा के लिए स्वचालित रूप से बहुल नहीं होना चाहते हैं:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable %w( dashboard foo bar baz )
end