Использование помощника Url Rails

#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