我在執行current_page?
以檢測當前控制器和操作是否等於某個值,但是在該控制器/操作組合時它不會返回true。Rails current_page?與controller.controller_name
- if current_page?(:controller => 'pages', :action => 'main')
# doesn't return true when on that controller/action combination
這是工作的唯一方法是,如果我用更多的詳細的方法,像這樣:
- if controller.controller_name == 'pages' && controller.action_name == 'main'
# this works just fine
是我的語法錯誤或者有什麼別的發生在這裏?有沒有更好的方法來做到這一點,比如設置BOOL或者這是正確的方式?
最終目標是僅在主着陸頁上顯示某個標題,同時在所有其他頁面上顯示不同標題。
編輯:相關輸出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)
按照慣例,您的操作方法名稱不應以大寫字母開頭。 – 2011-03-03 21:13:48
是的,'主'應該是'主'。看看是否有所作爲 – s84 2011-03-03 21:16:15
公約不談,它不幸並沒有什麼不同。謝謝你的建議! – iwasrobbed 2011-03-03 21:22:37