使用Rails Url Helper

时间:2011-05-09 03:29:04

标签: ruby-on-rails devise urlhelper

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

尝试使用命名路线。

配置/ routes.rb中

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

查看

=semantic_form_for :search, :url => listings_search_path do