如何从关联中过滤记录

Sre*_*RoR 1 activerecord ruby-on-rails ruby-on-rails-5.2

如何从关联中获取记录。我的工作表中有4个工作。如何使用resource_type_id = 2过滤所有工作。从下面的记录中,例如(我想获得2和3作为结果的工作ID)。

这是我的协会

class Job < ActiveRecord::Base   
  has_many :jobs_resources   
  has_many :resource_type, through: :jobs_resources, dependent: :destroy   
end

class ResourceType < ActiveRecord::Base   
  has_many :jobs_resources   
  has_many :jobs, through: :jobs_resources, dependent: :destroy end

class JobsResource < ActiveRecord::Base   
  belongs_to :job   
  belongs_to :resource_type 
end
Run Code Online (Sandbox Code Playgroud)

这是我的resources_type表的保存方式

在此处输入图片说明

这是我的JobsResource表记录 在此处输入图片说明

请帮助任何帮助

Vis*_*hal 5

您可以通过以下方式进行

Job.includes(:resource_type).where(resource_types: {id: 2}) 

Job.includes(:jobs_resources).where(jobs_resources: {resource_type_id: 2}) 

Job.joins(:jobs_resources).where(jobs_resources: {resource_type_id: 2})
Run Code Online (Sandbox Code Playgroud)