Разработка и ошибка маршрутизации - PullRequest
0 голосов
/ 29 апреля 2011

Я использую Devise для аутентификации пользователей и получаю следующую ошибку при регистрации и входе на страницы

No route matches {:action=>"search", :controller=>"devise/home"}

Видимо, это вызвано

<%= link_to "Search", url_for(:controller => "home", :action => "search")

в раскладках / application.html.erb

Настройка абсолютно проста, вот маршруты. Rb:

get "home/search"
devise_for :users
root :to => "home#index"

1 Ответ

1 голос
/ 30 апреля 2011

С http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to:

Будьте осторожны при использовании более старого стиля аргумента, так как необходим дополнительный литеральный хеш:

link_to "Articles", { :controller => "articles" }, :id => "news", :class => "article"
# => <a href="/articles" class="article" id="news">Articles</a> 

Выход изhash off дает неправильную ссылку:

link_to "WRONG!", :controller => "articles", :id => "news", :class => "article"
# => <a href="/articles/index/news?class=article">WRONG!</a>

Считается «предпочтительным» использовать именованные маршруты ресурсов, как описано в приведенной выше ссылке, чтобы при изменении маршрутов ресурсов вам не приходилосьобновите ссылки вручную.

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