如何从关联中获取记录。 我的工作表中有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
这是我保存resources_type表的方式
请提供任何帮助
答案 0 :(得分:4)
您可以通过以下方式完成
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})
答案 1 :(得分:1)
这就是您需要的:
Job.joins(:resource_type).where('resource_types.id = ?', 2).load
答案 2 :(得分:0)
您可以使用与以下内容关联的resource_types记录检索作业记录:
Job.joins(:resource_types)
如果您需要与作业没有关联的所有resource_types记录,则可以执行:
ResourceType.where(job: nil)