Rails 3.2.6 RoutingError

时间:2012-08-25 06:01:49

标签: ruby-on-rails ruby ruby-on-rails-3 routing

我一直在墙上撞了一会儿。我确定我错过了一些明显的东西,但是这里有。我在routes.rb文件中添加了以下行:

get '/:location_or_budget.:format' => 'listings#search_by_location_or_budget', as: :search

当我运行'rake routes'时,我在输出中看到了这条路线:

search GET    /:location_or_budget.:format     listings#search_by_location_or_budget

当我尝试在我的代码中使用这样的路径时:

link_to name, search_path(:location_or_budget => 'boston')

我得到以下内容:

ActionController::RoutingError (No route matches {:controller=>"listings", :action=>"search_by_location_or_budget", :location_or_budget=>"boston"}):

我觉得我把事情搞定了。我已经验证了'search_by_location_or_budget'方法存在并且是公共的。有谁知道可能出现什么问题或我如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这是因为你需要:格式化部分。试试这个:

get '/:location_or_budget.:format' => 'listings#search_by_location_or_budget', :as => :search, :defaults => { :format => 'html' }

或者

get '/:location_or_budget(.:format)' => 'listings#search_by_location_or_budget', :as => :search