我的网站标题中有一个搜索表单,例如:
=semantic_form_for :search, :url=>{:controller=>:listings,:action=>:search} do
...
这种方法很好,除非当前页面的控制器是作用域或命名空间的 - 不确定是哪一个。例如,'/ users / sign_in'页面由Devise控制,其控制器位于Devise名称空间内。
在该页面上,我收到一条错误消息,指出Devise :: Listings控制器下的操作不存在。 (当然它没有,因为Listings控制器不在Devise命名空间中。)
如何确保url helper不会自动为控制器的命名空间添加当前页面的前缀?
答案 0 :(得分:2)
尝试使用命名路线。
controller 'listings' do
get 'search', :as => :listings_search
end
=semantic_form_for :search, :url => listings_search_path do