2017-05-30 58 views
0

我有以下兩個對象:合併2個活動記錄從不同的車型

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

是否有可能在兩個關係結合起來,產生含有這兩種條件之一ActiveRecord::Relation對象?

+0

你對這個課程使用STI嗎? – Ilya

+0

不,我不知道。儘管他們有相同的模式,也許我應該在將來使用STI,但在這個時候不能這樣做。 – Abhas

回答

0

我剛剛看到加入users & employees的函數,然後嘗試users | employees,它工作。不知道這是否是正確的方法。

+0

這將返回兩個記錄的數組..你是什麼意思? –

+0

但是在獲取這個數組之後,你將無法通過這些記錄調用範圍,因爲它現在被轉換爲數組,並且我們不能在數組上調用範圍 –

+0

實際上,我必須在API調用中返回這個值。主動記錄會更好。這是我的工作,直到我得到正確的。我正在使用'jbuilder'來返回調用。如果你可以建議一個更好的,這將是真正有用的@ Md.FarhanMemon – Abhas

0

您可以加入這兩個表,然後在連接表執行包含兩個條件

+0

這並沒有提供問題的答案。一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你將可以在任何帖子上[評論](http://stackoverflow.com/help/privileges/comment)。另外檢查這[我可以做什麼,而不是](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an-i-do-instead )。 – thewaywewere

0

employee.rb

belongs_to :user, primary_key: :first_name 

在你的 'user.rb'

has_one :employee, primary_key: :first_name 

查詢那麼你可以打電話,

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

即使「用戶」和「員工」沒有以任何方式連接,你是在說這是一個解決方法嗎?這可能在這種情況下工作,但是當我想加入說'User.all'和'Employee.all'並獲得一個活動的記錄關係時,它可能不起作用,不是? – Abhas

+0

在這種情況下,'User.joins(:employee)'應該工作,雖然沒有測試 –

+0

好吧,讓我試試這個。 – Abhas