2009-08-29 24 views
19

रेल नियंत्रक बिना दृश्य बनाने के हैंडल कर सकते हैं? उदाहरण के लिए, मान लें कि मेरे पास एक पृष्ठ है जो सिर्फ अन्य पृष्ठों से लिंक है, क्या मुझे इसके लिए एक डमी नियंत्रक बनाने की आवश्यकता होगी, या क्या मैं अपने मार्ग फ़ाइल में कुछ कर सकता हूं?रेल नियंत्रक बिना नियंत्रक

उत्तर

14

नहीं। सभी अनुरोधों को नियंत्रक के माध्यम से जाना है।

मुझे के साथ PagesController होना पसंद है। इस तरह, मैं app/views/pages/foo.erb बना सकता हूं और इसे बिना किसी अतिरिक्त कोड के /foo पर उपलब्ध करा सकता हूं।

+4

थॉटबॉट के लिए इसके लिए एक उपयोगी प्लगइन है: http://github.com/thoughtbot/high_voltage/tree/master – jonnii

+0

यह अब पुराना प्रतीत होता है ...? यह पहले कहा गया नक्शा अपरिभाषित है। फिर मैंने मार्गों के शीर्ष पर पैरामीटर के रूप में मानचित्र जोड़ा। आरबी | मानचित्र | फिर रेल ने मुझे इस यूआरएल [कम-डाउन-ऑन-रूट-इन-रेल-3] पर इंगित करने में एक और विस्तृत त्रुटि दी है (https://blog.engineyard.com/2010/the-lowdown-on-routes- इन-रेल -3 /) – msanjay

3

एक और विकल्प आपकी/सार्वजनिक निर्देशिका में एक स्थिर HTML फ़ाइल जोड़ देगा यदि आपको वास्तव में अपने आवेदन के हिस्से के रूप में इसकी आवश्यकता नहीं है।

1

यदि आप एक बहादुर आत्मा हैं। आप किनारे की रेल कोशिश कर सकते हैं 3. कैट्ज़ ने अपने ब्लॉग पर इस संभावना का प्रदर्शन किया।

http://yehudakatz.com/2009/07/19/rails-3-the-great-decoupling/

0

सं सभी अनुरोधों को एक नियंत्रक के माध्यम से जाने के लिए है: यहाँ की कड़ी है।

यदि आपके पास अपने दृश्य फ़ोल्डर में index.html.erb और contact.html.erb जैसे पृष्ठ हैं। आपको contact नामक डमी नियंत्रक बनाने की आवश्यकता है। फिर आप से index.html.erb से लिंक कर सकते हैं। और लिंक को <%= link_to 'contact', :controller => "ads", :action => "contact" %> "विज्ञापन" -> नियंत्रक नाम के रूप में दें।

19

मुझे अगस्त का जवाब पसंद है लेकिन मेरे पास थोड़ा अलग तरीका है।

मान लीजिए कि आप

/any/path/somefile.html.erb

जोड़ते हैं, लेकिन एक नियंत्रक जोड़ नहीं करना चाहते हैं ...

तुम बस करने के लिए फ़ोल्डर में जोड़ सकते हैं "एप्लिकेशन" नामक विचार, उस निर्देशिका में अपनी फ़ाइल बनाएं ..

फिर अपने मार्ग फ़ाइल में केवल

0 जोड़ें
match '/any/path/somefile' => 'application#somefile' 

आपका ERB अभी भी मूल्यांकन करता है, तो आप अपने लेआउट मिलता है, और आप किसी भी पथ आप चाहते हैं ... (यह सभी पृष्ठों नियंत्रक की आवश्यकता को दूर करता है)

आशा है कि यह मदद करता है बना सकते हैं ...

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