2015-08-31 102 views
4

我需要在我的User模型上創建一個範圍,該範例將獲得其電子郵件屬性包含在AdminUser模型電子郵件中的所有用戶。ActiveRecord。查找按屬性排列的所有記錄的值

基本上,User模型中有一個稱爲email的屬性,在AdminUser模型中有相同的屬性。所以,我需要讓所有實際上是管理員的用戶(通過電子郵件)。

我沒有實現這個作爲一個勁兒地查詢成功,並開始與獲得的AdminUser郵件數組:

emails = AdminUser.pluck(:email) 

,現在我與得到管理員用戶的陣列從User模型掙扎。

如果我寫的是這樣的:

User.find_by_email(emails) 

我得到的只是一個實體,而不是數組。


所以,我的問題:

如何創建一個範圍,說admins,在User模型,將返回管理員的陣列?


BTW:某些其他目的,我有這個方法我User

def admin? 
    AdminUser.find_by(email: email) ? true : false 
    end 

的話,也許我可以以某種方式利用它在這種情況下?

回答

13

如果您在where子句中傳遞數組屬性的值,它會做你想要什麼。

@user = User.where(email: AdminUser.pluck(:email)) 
+0

真的嗎?那簡單?所以cooool –

+0

沒有想到這一點。好一個:) – Pavan

4

查找器方法總是返回單個記錄。您可以使用where

User.where(email: emails) 
相關問題