Rails current_page? по сравнению с controller.controller_name

Я использую current_page? для проверки, равны ли текущий контроллер и действие определенному значению, однако он не вернет истину, когда на этом контроллере / комбинация действий.

- 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)
25
задан iwasrobbed 3 March 2011 в 21:52
поделиться