"Нет маршрутов соответствует" при использовании текущей_страницы в Rails 3

Кто-нибудь испытал маршруты, которые загадочно становятся недоступными при использовании текущей_страницы? в Rails 3? Даже с полностью сгенерированным эшафотом в комплекте с маршрутами, представлением и контроллером, я получаю ошибку "Нет маршрутов".

Здесь код:

if current_page?(:controller => 'users', :action => "show")

Если я добавлю команду "match" в route.rb, она отлично работает, но зачем мне это нужно, если ресурсы уже созданы? Что мне не хватает?

Ответ 1

Вам не хватает параметра id этого помощника:

current_page?(:controller => "users", :action => "show", :id => "1")

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

Ответ 2

Если вы просто хотите протестировать текущий контроллер, вы можете сделать следующее:

if params[:controller] == 'users'

Аналогично, если вы используете контроллер с пространством имен, вы можете просто использовать косую черту для разделения пространства имен от имени контроллера, например:

if params[:controller] == 'advertising/users'