2017-05-30 4 views
0

Ich habe die folgenden zwei Objekte:Merging 2 aktive Datensätze aus verschiedenen Modellen

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

Ist es möglich, die beiden Beziehungen zu kombinieren ein ActiveRecord::Relation Objekt erzeugen beide Bedingungen enthalten?

+0

Verwenden Sie STI für diese Klassen? – Ilya

+0

Nein, tue ich nicht. Sie haben das gleiche Schema, vielleicht sollte ich STI in Zukunft verwenden, kann es aber zu diesem Zeitpunkt nicht. – Abhas

Antwort

0

Ich sah nur Funktion für Join users & employees und versuchte dann users | employees und es funktionierte. Nicht sicher, ob das der richtige Weg ist.

+0

, die Array von beiden Aufzeichnungen zurückgeben .. ist es, was du meintest? –

+0

Aber nach dem Fetten dieses Arrays können Sie keine Bereiche mehr über diese Datensätze aufrufen, da dies jetzt in Array konvertiert wird, und wir können Bereiche auf Array nicht aufrufen –

+0

Eigentlich muss ich dies im API-Aufruf zurückgeben. Aktive Aufzeichnung wäre jedoch besser. Das ist meine Arbeit, bis ich die richtige bekomme. Ich benutze 'jbuilder', um die Anrufe zurückzugeben. Wenn Sie einen besseren vorschlagen können, wäre das wirklich hilfreich @ Md.FaranMemon – Abhas

0

Sie könnten diese beiden Tabellen verbinden und dann die Abfrage in der verknüpften Tabelle ausführen beide Bedingungen enthalten

+0

Dies bietet keine Antwort auf die Frage. Sobald Sie genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) haben, können Sie [comment] (http://stackoverflow.com/help/privileges/comment) zu jedem Post schreiben. Überprüfen Sie auch dieses [was kann ich stattdessen tun] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). – thewaywewere

0

in Ihrem employee.rb

belongs_to :user, primary_key: :first_name 

in Ihrem user.rb '

has_one :employee, primary_key: :first_name 

Dann können Sie anrufen,

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

Sie sagen, selbst wenn die "Benutzer" und "Mitarbeiter" in keiner Weise verbunden sind, ist dies eine Arbeit dafür? Das mag in diesem Fall funktionieren, aber wenn ich beitreten will, sagt 'User.all' und' Employee.all' und bekomme eine aktive Datensatzbeziehung, funktioniert das vielleicht nicht, nein? – Abhas

+0

in diesem Fall, 'User.joins (: Mitarbeiter)' sollte funktionieren, hat nicht getestet –

+0

ok, lass mich das versuchen. – Abhas

Verwandte Themen