0

我的网站标题中有一个搜索表单,例如:

=semantic_form_for :search, :url=>{:controller=>:listings,:action=>:search} do
...

这很好用,除非当前页面的控制器是作用域或命名空间的——不确定是哪个。例如,'/users/sign_in' 页面由 Devise 控制,其控制器位于 Devise 命名空间内。

在该页面上,我收到一条错误消息,指示该操作在 Devise::Listings 控制器下不存在。(当然不是,因为 Listings 控制器不在 Devise 命名空间中。)

如何确保 url helper 不会自动为当前页面的控制器命名空间添加前缀?

4

1 回答 1

2

尝试使用命名路由。

配置/路由.rb

controller 'listings' do
  get 'search', :as => :listings_search
end

看法

=semantic_form_for :search, :url => listings_search_path do
于 2011-05-09T04:43:06.333 回答