Я реализую 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)
rake routes
. - person jdl   schedule 04.03.2011