Ruby on rails 如何从一个模型中提取唯一值并使用它们映射到另一个模型?

Ruby on rails 如何从一个模型中提取唯一值并使用它们映射到另一个模型?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个消息模型,它引用了许多带有用户id密钥的记录。如何仅提取该键的唯一值,然后将其映射到id(User_id)为键的用户模型?提取比选择更有效。选择将返回一个关系对象,并在映射时创建ruby对象 user_ids = Message.select('distinct(user_id)').map(&:user_id) messaged_users = User.where(id: user_ids) user_ids = Message.pluck(:user_id) mess

我有一个消息模型,它引用了许多带有用户id密钥的记录。如何仅提取该键的唯一值,然后将其映射到id(User_id)为键的用户模型?

提取
选择
更有效。选择将返回一个关系对象,并在映射时创建ruby对象

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

让我看看我是否理解:那么你有一个
消息
模型属于
用户,一个
用户
模型
有许多
消息?你到底想用这两个模型做什么?见下文,森喜朗的想法是正确的。效果很好!谢谢,森。