就像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 user
或current_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
答案 0 :(得分:0)
我会在User和Message之间创建关联,然后执行以下操作
User.where(id: current_user.id).joins(:messages).order('messages.created_at DESC')