2010-11-11 63 views
1

我有4個位置,我從舊系統中提取數據。
我把3個位置放到一個模型中(因爲我把數據加載到同一個表中)。
第4個位置必須位於單獨的數據庫中。結合來自2個不同模型的數據

我想知道是否有一種方法來結合模型中的2或2個模型中的軌道。

這是我目前有:

class Fyf003 < ActiveRecord::Base 
    establish_connection "turnkey" 
end 

,另一種是:

class WccFyf003 < ActiveRecord::Base 
    establish_connection "turnkey_wcc" 
    def self.table_name() "fyf003" end 
end 

我猜測這是不是這樣做的正確的方式,這就是爲什麼我這裏。

表格佈局和名稱是相同的。

如果您需要更多的信息或可以指向正確的方向,那就太好了。

謝謝你的幫助。

回答

1

我想通了,我可以只使用:

sql = "SELECT * FROM turnkey.fyf003 
     UNION ALL 
     SELECT * FROM turnkey_wcc.fyf003" 
lot_data = Fyf003.find_by_sql(sql) 

如果有人有更好的主意,我完全贊成。

編輯: 自發布此,你可以做以下如果數據是一樣的,我發現了:

data1 = Fyf003.all 
data2 = WccFyf003.all 
all_data = data1+data2 

它只是結合了數組,你仍然有單獨的對象,但你可以使用.collect(&:field),並讓它工作。

如果有人擁有它,仍在尋找最佳解決方案。

+0

愚蠢的輸入鍵! – 2010-11-29 23:07:58

0

我猜你正在使用多個模型映射到一個表。如果是這樣的話,在你的模型中;

set_table_name 'table_name' 
set_primary_key 'primary_key' 
+0

我很困惑。我連接到2個不同的數據庫,但這些表是相同的列,只是不同的數據。我試圖讓他們進入一個模型。我看到你的代碼所做的唯一事情就是爲我的表設置表名和主鍵。 – 2010-11-12 05:43:57

相關問題