#ruby-on-rails #devise #urlhelper
#ruby-on-rails #разработка #urlhelper
Вопрос:
У меня есть форма поиска в заголовке моего сайта, например, такая:
=semantic_form_for :search, :url=>{:controller=>:listings,:action=>:search} do
...
Это работает нормально, за исключением случаев, когда контроллер для текущей страницы ограничен областью действия или пространством имен — не уверен, что именно. Например, страница ‘/users/sign_in’ управляется Devise, а ее контроллер находится внутри пространства имен Devise.
На этой странице я получаю сообщение об ошибке, которое указывает, что действие не существует в контроллере Devise::Listings. (Конечно, это не так, потому что контроллер Listings отсутствует в пространстве имен Devise.)
Как мне убедиться, что url helper автоматически не добавляет префикс к пространству имен контроллера для текущей страницы?
Ответ №1:
Попробуйте использовать именованный маршрут.
config/routes.rb
controller 'listings' do
get 'search', :as => :listings_search
end
Вид
=semantic_form_for :search, :url => listings_search_path do