Ruby on Rails路由:集合上的资源

时间:2012-03-11 13:53:49

标签: ruby-on-rails routing

我需要一个指向所有作业的链接,标记为PHP。这个结构对我来说很有意义:

  

site.com/jobs/skills/php

我如何在Rails中执行此操作?

  resources :jobs do
    collection do
      resources :skills, as: :find_by_skill
    end
  end

但是,当我尝试调用jobs_find_by_skill(技能)助手时,这不起作用。哪里有问题?如果无法做到这一点,你能为这种目的建议一个更好的URL结构吗?

1 个答案:

答案 0 :(得分:0)

你在这里混淆了标签技能。我正在使用标签来获得这个答案。

使网址最常用的方法是嵌套资源

resources :jobs do
  resources :tags
end

请记住,不要将后续资源放在集合或成员块中。然后像这样有一个tags_controller.rb

class TagsController < ApplicationController
  def index
    @jobs = Tag.find_by_name(params[:id]).jobs
  end
end

Job Tag 的相应关联也需要存在。

希望能让你更进一步。