मैं यह देखने के लिए current_page?
लागू कर रहा हूं कि वर्तमान नियंत्रक और क्रिया किसी निश्चित मान के बराबर है, हालांकि यह उस नियंत्रक/क्रिया संयोजन पर सही नहीं होगा।रेल वर्तमान_पृष्ठ? बनाम नियंत्रक.controller_name
- if controller.controller_name == 'pages' && controller.action_name == 'main'
# this works just fine
मेरी वाक्य रचना गलत है या कुछ और यहाँ क्या हो रहा है:
- if current_page?(:controller => 'pages', :action => 'main')
# doesn't return true when on that controller/action combination
केवल जिस तरह से यह काम कर रहा है, तो मैं बहुत की तरह थोड़ा और वर्बोज़ विधि का उपयोग है? क्या ऐसा करने का कोई बेहतर तरीका है, जैसे कि बूल सेट करना या यह सही तरीका है?
अंतिम लक्ष्य केवल अन्य लैंडिंग पृष्ठ पर एक निश्चित शीर्षलेख दिखाने के लिए है, जबकि अन्य सभी पृष्ठों पर एक अलग शीर्षलेख दिखा रहा है।
संपादित: प्रासंगिक उत्पादन rake routes
से:
pages_main GET /pages/main(.:format) {:controller=>"pages", :action=>"main"}
root /(.:format) {:controller=>"pages", :action=>"main"}
इसके अलावा, इस प्रतिपादन पर सर्वर उत्पादन होता है:
Started GET "/" for 127.0.0.1 at 2011-03-03 16:54:40 -0500
Processing by PagesController#main as HTML
Rendered pages/main.html.haml within layouts/application (203.8ms)
आपके एक्शन विधि नामों को सम्मेलन द्वारा पूंजी पत्र से शुरू नहीं होना चाहिए। –
हाँ, 'मुख्य' होना चाहिए 'मुख्य'। देखें कि इससे – s84
कन्वेंशन अलग हो गया है, दुर्भाग्य से यह कोई फर्क नहीं पड़ता। सुझाव के लिए धन्यवाद सब वही! – iwasrobbed