我有一个Message模型,它引用了许多带有user_id键的记录。如何仅为此键选取唯一值,然后将它们映射到id(user_id)为关键字的用户模型?
答案 0 :(得分:0)
user_ids = Message.select('distinct(user_id)').map(&:user_id)
messaged_users = User.where(id: user_ids)
答案 1 :(得分:0)
pluck
比select
效率更高。选择将返回关系对象并在映射时创建ruby对象。
user_ids = Message.pluck(:user_id)
messaged_users = User.where(id: user_ids)