"Нет маршрутов соответствует" при использовании текущей_страницы в 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'