ActiveRecord加入语法

时间:2011-02-01 20:44:22

标签: sql ruby-on-rails-3 activerecord outer-join

我需要使用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。

1 个答案:

答案 0 :(得分:2)

此语法有效:

joins("LEFT OUTER JOIN F on U.key = F.foreign_key AND F.key=#{key}")