Я реализую 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)