2
在我的應用程序中,我必須模型:工作流和步驟;步驟belongs_to
工作流程和工作流程has_many
步驟。步驟有一個索引和一個布爾狀態('完成')。 我想要檢索的工作流程,其完成步驟1和步驟2不大,即SQL是這樣的:在與Squeel相同的關聯上執行多個連接
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`
任何想法如何,我可以做到這一點?
有趣。我會試一試(我的系統實際上比我描述的要複雜一點)。 – Dom