【发布时间】:2012-06-11 07:03:27
【问题描述】:
在我的应用程序中,我必须建模:工作流和步骤;步骤belongs_to 工作流和工作流has_many 步骤。步骤有一个索引和一个布尔状态(“完成”)。
我想检索步骤 1 已完成但步骤 2 未完成的工作流,即 SQL 中的类似内容:
SELECT * FROM workflows w
INNER JOIN steps s1 ON s1.workflow_id = w.id
INNER JOIN steps s2 ON s2.workflow_id = w.id
WHERE s1.index = 1 AND s1.completed = 1
AND s2.index = 2 AND s2.completed = 0
我试图用 Squeel 表达这个查询,但它似乎不允许在同一个关联上进行多个连接:我找不到命名连接的方法,当我输入如下内容时:Workflow.joins{steps}.joins{steps},生成的 SQL 很简单:
SELECT `workflows`.* FROM `workflows`
INNER JOIN `workflow_steps` ON `workflow_steps`.`workflow_id` = `workflows`.`id`
知道如何实现吗?
【问题讨论】:
标签: ruby-on-rails join associations squeel