2010-07-23 26 views
0

我必須從我的Rails應用程序連接到Java應用程序上的遠程數據庫。重構SQL

我有這樣的查詢:

find_by_sql("select c_templateid, c_templateinfoid, c_startdate, c_enddate, c_active, 
campaign, shortcode, prefix, c_descriptivename, c_description, c_templatename 
from (active_services aser join activity a on aser.c_primaryprefixid = 
a.c_primaryprefixid) join matrix_templateinfo using(c_templateinfoid) 
where campaign is not null)") 

我需要把它重構到AR#find()方法,因爲我想在以後添加複雜的:它的條件。我不想將它們轉換爲字符串,然後再追加到find_by_sql方法。

find(:all, 
    :select => "c_templateid, c_templateinfoid, c_startdate, c_enddate, c_active, 
    campaign, shortcode, prefix, c_descriptivename, c_description, c_templatename", 
# :joins => WHAT I SHOULD DO HERE ? 
    :conditions => "campaign is not null" 
) 

回答

1

您還可以指定複雜聯接在:加入

​​

,但你應該真正開始,如果你正在使用的軌道padronizing您的字段名稱:]

+0

我已經重構它的http:/ /gist.github.com/487539,但我不知道這個查詢是否相同? – astropanic 2010-07-24 16:59:55