Ruby on rails找到一个关联的对象,它也有另一个关联

时间:2015-06-20 08:03:49

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord

我有三个模型,以这种方式组织:

class Task < AR::Base
  has_one :taskable

class Taskable
  belongs_to :task
  has_many :supplies

class Supply < AR::Base
  belongs_to :taskable

如何获取所有可执行任务至少有一个供应的任务?

2 个答案:

答案 0 :(得分:3)

您需要加入查询。

# To fetch all tasks, for which taskable has at least one supply
Task.joins(taskable: :supplies)

答案 1 :(得分:0)

您需要加入,但还有其他条件:

Task.joins(taskable: :supplies).where("supplies.id IS NOT NULL")