我一直在墙上撞了一会儿。我确定我错过了一些明显的东西,但是这里有。我在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'方法存在并且是公共的。有谁知道可能出现什么问题或我如何解决这个问题?
答案 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