2011-02-01 40 views
1

我需要表達以下使用ActiveRecord連接條件: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子句中添加限制(其中(「F.key =?」,key))會將OUTER JOIN摺疊爲JOIN。

回答

2

這句法工作:

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