1

我有一个工作资源,每个工作都有一个位置。如何创建路线,按位置显示工作?换句话说,如何得到这个:/jobs/locations/london

位置本身就是一个单独的模型。

我试过:

  resources :jobs do
    collection do
      match 'locations/:id' => 'jobs#find_by_location', as: :jobs_find_by_location, via: :get
    end
  end

但这不起作用:

link_to @location.name, jobs_find_by_location(@location)

这样做的最干净的 Rails 方式是什么?

4

1 回答 1

0

尝试

match '/jobs/locations/:location_name', :controller => 'locations', :action => 'action_name', :as => jobs_find_by_location, :via => :get

或者

match '/jobs/locations/:location_name' => 'locations#action_name', :as => jobs_find_by_location, :via => :get

重新启动服务器并执行请求 /jobs/locations/london

在您的操作中使用 params[:location_name] 获取“伦敦”

于 2012-04-04T09:03:27.433 回答