Как отфильтровать записи из ассоциации - PullRequest
0 голосов
/ 22 января 2019

Как получить записи от ассоциации.У меня есть 4 вакансии в моей таблице вакансий. Как отфильтровать все вакансии с resource_type_id = 2.Из приведенных ниже записей, например, для (я хочу получить идентификатор задания с 2 и 3 в качестве результата).

здесь моя ассоциация

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

Это мой способ сохранения таблицы resources_type

enter image description here

Это мои записи в таблице JobsResource enter image description here

Пожалуйста, помогите любой помощи приветствуется

Ответы [ 3 ]

0 голосов
/ 22 января 2019

Вы можете получить записи задания с помощью записи resource_types, связанной с:

Job.joins(:resource_types)

если вам нужны все записи resource_types, которые не связаны с заданием, вы можете выполнить:

ResourceType.where(job: nil)
0 голосов
/ 22 января 2019

Это то, что вам нужно:

Job.joins(:resource_type).where('resource_types.id = ?', 2).load
0 голосов
/ 22 января 2019

Вы можете сделать это следующими способами

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})
...