我有三个模型,以这种方式组织:
class Task < AR::Base
has_one :taskable
class Taskable
belongs_to :task
has_many :supplies
class Supply < AR::Base
belongs_to :taskable
如何获取所有可执行任务至少有一个供应的任务?
答案 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")