我有三个模型,JobPosting,Job和Organization。关系如下:
Job有一个名为job_type
的属性,我可以使用查询找到与具有特定job_type
的作业相关的所有JobPosting:
JobPosting.joins(:job).where(jobs: { :job_type => 'volunteer' })
但我正在努力的是做同样的事情,但有一个组织属性。组织具有名为department
的属性,如何通过具有特定部门的作业查询与组织相关的JobPosting。我遇到麻烦的原因是因为组织基本上是两级,而Job只是一级。
非常感谢任何帮助。
答案 0 :(得分:6)
您可以按如下方式加入这两种关系:
JobPosting.
joins(job: :organization).
where(jobs: { job_type: 'volunteer' }, organizations: { organizations_attr1: 'value_to_test' })
joins(job: :organization)
可确保您在job_postings
,jobs
和organizations
表之间正确连接。如果您想探索Rails如何执行连接,请尝试在rails console
中使用.to_sql
执行此操作以检查生成的查询。