>我的网站标题中有一个搜索表单,如下所示:
=semantic_form_for :search, :url=>{:controller=>:listings,:action=>:search} do
...
这工作正常,除非当前页面的控制器是作用域或命名空间 - 不确定哪个。例如,'/users/sign_in' 页面由 Devise 控制,其控制器位于 Devise 命名空间内。
在该页面上,我收到一条错误消息,指示该操作在 Devise::列表控制器下不存在。(当然不是,因为列表控制器不在 Devise 命名空间中。
如何确保 url 帮助程序不会自动为当前页面的控制器命名空间添加前缀?
尝试使用命名路由。
config/routes.rb
controller 'listings' do
get 'search', :as => :listings_search
end
视图
=semantic_form_for :search, :url => listings_search_path do