0

我已经把头撞在墙上太久了。我确定我遗漏了一些明显的东西,但是这里有。我将以下行添加到我的 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”方法存在并且是公开的。有谁知道可能出了什么问题或我如何解决这个问题?

4

1 回答 1

1

这是因为您需要 :format 部分。试试这个:

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
于 2012-08-25T06:23:47.450 回答