"Нет совпадений маршрутов" при использовании current_page в Rails 3 - PullRequest
10 голосов
/ 12 апреля 2011

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

Вот код:

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

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

Ответы [ 2 ]

20 голосов
/ 27 февраля 2012

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

if params[:controller] == 'users'

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

if params[:controller] == 'advertising/users'
18 голосов
/ 12 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...