2017-02-08 67 views
0

我有兩個表位於兩個不同的數據庫。Rails結合了兩個不同的活動記錄對象

例子:

用戶居住在DB1與屬性USER_ID和名稱

審計居住在DB2與屬性ID和user_id說明

User.find_by_sql("SELECT * FROM users") 

Audit.find_by_sql("SELECT * FROM audits") 

我如何基於用戶結合這兩個查詢結果的結果_id

預計輸出行數=>USER_ID audit_id名

+0

你是否設法從兩個不同的數據庫中獲得結果?那麼它只是一種將結果對象拼湊在一起的方式 –

回答

0

,如果你想這樣做在Ruby中,你可以只使用映射

users = User.find_by_sql("SELECT * FROM users") 

audits = Audit.find_by_sql("SELECT * FROM audits") 

result = [] 
users.each do |u| 
    result << { 
    user_id: u.id, 
    name: u.name, 
    audits: audits.find_all { |a| a.user_id == u.id } 
    } 
end 

result 

# result will include all user audits 
在地圖

你可以用任何你喜歡建立自己的散列

+0

在這裏,用戶變量會被審計填滿。你能建議如何將用戶和用戶審計映射到用戶嗎? –

+0

@SitharaSuresh在回答中看到更新後的代碼,這可能是您正在尋找的內容,如果您希望它與您指出的完全相同,那麼將必須執行雙重(嵌套)迭代 – mswiszcz

相關問題