Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails路由:关于集合的资源_Ruby On Rails_Routing - Fatal编程技术网

Ruby on rails RubyonRails路由:关于集合的资源

Ruby on rails RubyonRails路由:关于集合的资源,ruby-on-rails,routing,Ruby On Rails,Routing,我需要一个链接,它将指向所有作业,标记为PHP。这种结构对我来说很有意义: site.com/jobs/skills/php 如何在Rails中实现这一点 resources :jobs do collection do resources :skills, as: :find_by_skill end end 但是,当我试图通过技能(skill)助手调用jobs\u find\u时,这不起作用。哪里有问题?如果不能做到这一点,你能为这种目的提出一个更好的U

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

site.com/jobs/skills/php

如何在Rails中实现这一点

  resources :jobs do
    collection do
      resources :skills, as: :find_by_skill
    end
  end
但是,当我试图通过技能(skill)助手调用jobs\u find\u时,这不起作用。哪里有问题?如果不能做到这一点,你能为这种目的提出一个更好的URL结构吗?

你在这里混淆了标签和技能。我用标签来回答这个问题

使url工作的最常见方法是嵌套资源

resources :jobs do
  resources :tags
end
记住不要将后续资源放在集合或成员块中。然后有一个标签_controller.rb,例如

class TagsController < ApplicationController
  def index
    @jobs = Tag.find_by_name(params[:id]).jobs
  end
end
class标记控制器
作业和标记的对应关联也需要存在

希望这能让你走得更远