Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:按最新消息列出的用户列表(会话索引)_Ruby On Rails_Ruby_Messaging - Fatal编程技术网

Ruby on rails Rails:按最新消息列出的用户列表(会话索引)

Ruby on rails Rails:按最新消息列出的用户列表(会话索引),ruby-on-rails,ruby,messaging,Ruby On Rails,Ruby,Messaging,就像facebook信息界面的左栏一样,我想列出当前用户发过或收到过信息的用户,有效地建立一个“对话”索引列表 然后可以单击此列表中的项目,以显示两个用户之间的消息历史记录,即实际对话本身,我已经有了这些信息,例如 Message.where("(sender_id = ? and user_id = ?) or (sender_id = ? and user_id = ?)",from_id, to_id, to_id, from_id) rails命令是什么样子的,以创建此对话索引?类似于

就像facebook信息界面的左栏一样,我想列出当前用户发过或收到过信息的用户,有效地建立一个“对话”索引列表

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

Message.where("(sender_id = ? and user_id = ?) or (sender_id = ? and user_id = ?)",from_id, to_id, to_id, from_id)
rails命令是什么样子的,以创建此对话索引?类似于User.where已向当前用户或当前用户发送消息。消息映射唯一用户,ordermessage已在处创建?请原谅COVA代码

关联架构:

class User < ActiveRecord::Base
  has_many :messages
end

class Message < ActiveRecord::Base
  belongs_to :user
end

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

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

感谢您的回复-通过这篇文章,我得到了使用当前用户的“未定义方法”“连接”我在两者之间的关联只是用户有很多消息,而消息属于用户。棘手的部分是如何对关联进行建模。我想你应该重写finder\u sql来实现这一点。嗯,这给了我很多当前用户的副本。。。在每种情况下,我们是否可以将其倒置,通过邮件中的发件人id向发件人发送邮件?