Он не вернул true, когда должен был, поэтому я создал другой маршрут и действие, и он работал нормально.

лизую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)

Ответы на вопрос(2)

Ваш ответ на вопрос