Rails:最新消息的用户列表(对话索引)

时间:2013-06-21 15:37:38

标签: ruby-on-rails ruby messaging

就像facebook的消息传递界面的左栏一样,我想列出已经被current_user发送消息或被消息发送的用户,有效地制作了一个'对话的索引列表。

然后可以点击此列表中的项目以显示两个用户之间的消息历史,即我已经在工作的实际会话本身。

Message.where("(sender_id = ? and user_id = ?) or (sender_id = ? and user_id = ?)",from_id, to_id, to_id, from_id)

使用rails命令制作这个会话索引会是什么样的?像User.where has messaged current usercurrent_user.messages map unique users, order(message created_at)之类的东西?(请原谅convo-code)

关联架构:

class User < ActiveRecord::Base
  has_many :messages
end

class Message < ActiveRecord::Base
  belongs_to :user
end

1 个答案:

答案 0 :(得分:0)

我会在User和Message之间创建关联,然后执行以下操作

User.where(id: current_user.id).joins(:messages).order('messages.created_at DESC')