1

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

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

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
4

1 回答 1

0

我会在用户和消息之间创建关联,然后执行以下操作

User.where(id: current_user.id).joins(:messages).order('messages.created_at DESC')
于 2013-06-21T18:10:08.193 回答