2016-01-13 45 views
-1

我有一個消息模型引用了user_id鍵的許多記錄。如何僅爲該鍵採用唯一值,然後將其映射到其中id(user_id)是關鍵字的用戶模型?如何從一個模型中採集唯一值並將其用於映射到另一個模型?

+1

讓我看看我是否理解:所以你有一個'belongs_to'用戶和'用戶'模型'has_many'消息的Message模型?你究竟想要用這兩種模式做什麼? – derekyau

+0

見下,森有正確的想法。 – nebulus

回答

0
user_ids = Message.select('distinct(user_id)').map(&:user_id) 
messaged_users = User.where(id: user_ids) 
+0

工程就像一個魅力!謝謝,森。 – nebulus

0

pluckselect更有效。選擇將返回一個關係對象,並在映射時創建紅寶石對象。

user_ids = Message.pluck(:user_id) 
messaged_users = User.where(id: user_ids) 
相關問題