Ruby on Rails:路由和资源

时间:2012-04-04 08:16:59

标签: ruby-on-rails routes

我有一个乔布斯资源,每个职位都有一个位置。如何创建路线,按位置显示作业?换句话说,如何得到这个:/ 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方式是什么?

1 个答案:

答案 0 :(得分:0)

尝试

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

OR

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

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

在你的行动中使用params [:location_name]来获取'伦敦'