2017-05-30 12 views
0

から2つのアクティブなレコードをマージI持って、次の二つのオブジェクト:異なるモデル

users = User.where(:first_name => 'Abhas') 
employees = Employee.where(:first_name => 'Abhas') 

それは両方の条件を含む1つのActiveRecord::Relationオブジェクトを生成するために2つの関係を結合することは可能ですか?

+0

このクラスにSTIを使用していますか? – Ilya

+0

いいえ、私はしません。彼らは同じスキーマを持っていますが、将来私はSTIを使うべきでしょうが、現時点ではできません。 – Abhas

答えて

0

私はちょうど結合のための機能を見たusers & employeesそしてそれを試みたusers | employeesそれは働いた。それが正しい方法であるかどうかは分かりません。

+0

両方のレコードの配列を返します。それはあなたが意味するものですか? –

+0

しかし、この配列をフェッチした後、これらのレコードをスコープで呼び出すことはできません。これは配列に変換され、配列のスコープは呼び出せません。 –

+0

実際にはAPI呼び出しでこれを返す必要があります。アクティブなレコードはより良いでしょう。これは私が正しいものを得るまで私の仕事です。私は 'jbuilder'を使って呼び出しを返します。あなたがより良いものを提案できるなら、それは本当に役に立ちます@Md.FarhanMemon – Abhas

0

あなたは、これらの2つのテーブルを結合し、その後、両方の条件

あなたの 'user.rb'

has_one :employee, primary_key: :first_name 

でのごemployee.rb

belongs_to :user, primary_key: :first_name 

+0

これは質問に対する答えを提供しません。十分な[評判](http://stackoverflow.com/help/whats-reputation)があれば、どの投稿でも[コメント](http://stackoverflow.com/help/privileges/comment)できるようになります。また、これを確認してください(代わりに何ができますか?)(https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reationation-to-comment-what-c​​an-i-do-instead )。 – thewaywewere

0

を含む結合テーブルにクエリを実行することができますその後、

User.where(first_name: 'Abhas').includes(:employee) 
+0

「ユーザー」と「従業員」が何らかの方法で接続されていない場合でも、これは回避策ですか?この場合にはうまくいくかもしれませんが、 'User.all'と' Employee.all'という名前で結合してアクティブなレコード関係を取得したい場合は、動作しない可能性があります。その場合は – Abhas

+0

、 'User.joins(:employee)'は動作するはずですが、 –

+0

でもOKですが、これを試してみましょう。 – Abhas

関連する問題