現在のコントローラーとアクションが特定の値に等しいかどうかをテストするために実装current_page?
していますが、そのコントローラーとアクションの組み合わせでは true を返しません。
- 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)