我有兩個表位於兩個不同的數據庫。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名
我有兩個表位於兩個不同的數據庫。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名
,如果你想這樣做在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
在地圖
你可以用任何你喜歡建立自己的散列
在這裏,用戶變量會被審計填滿。你能建議如何將用戶和用戶審計映射到用戶嗎? –
@SitharaSuresh在回答中看到更新後的代碼,這可能是您正在尋找的內容,如果您希望它與您指出的完全相同,那麼將必須執行雙重(嵌套)迭代 – mswiszcz
你是否設法從兩個不同的數據庫中獲得結果?那麼它只是一種將結果對象拼湊在一起的方式 –