我需要使用ActiveRecord表达以下连接条件:
SELECT ...
FROM U
LEFT OUTER JOIN F ON U.key = F.foreign_key
AND F.key = ?
WHERE ...
在哪里?在运行时被替换。
以下导致SQL语法错误:
joins("LEFT OUTER JOIN F on U.key = F.foreign_key AND F.key=?", key)
我似乎无法确定ActiveRecord是否支持这种“动态替换”(无论这是什么)。
在WHERE子句中添加限制(where(“F.key =?”,key))会将OUTER JOIN折叠为JOIN。
答案 0 :(得分:2)
此语法有效:
joins("LEFT OUTER JOIN F on U.key = F.foreign_key AND F.key=#{key}")