2017-02-08 10 views
0

2つの異なるデータベースに2つのテーブルがあります。2つの異なるアクティブなレコードオブジェクトを結合します。

例:

属性 idを持つDB2に存在する属性のuser_idと名前

監査でDB1に居住

ユーザーと私はどのように

User.find_by_sql("SELECT * FROM users") 

Audit.find_by_sql("SELECT * FROM audits") 

をUSER_IDユーザーに基づいてこれらの2つのクエリ結果の結果を結合する_id

期待される出力行=>のuser_idたaudit_id名

+0

あなたは2つの異なるデータベースから結果を得ることができましたか?それは単に結果オブジェクトを一緒に抜く方法です。 –

答えて

0

あなたはルビーでこれを行うにしたい場合は、ちょうどあなたが何が好きで、あなたのハッシュを構築することができるマップで

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

関連する問題