我们已经实现了Rails中使用简单的Ajax更新一个简单的聊天室功能。现在,在每个聊天室的消息属于特定的用户。我们希望向用户展示的名单(类似用户的存在)。请建议的方式。我们不使用Jabber,XMPP等

在聊天室模式是:

class ChatRoom < ActiveRecord::Base
  validates_presence_of :title

  has_many :messages,:foreign_key=> "chat_room_id"
  has_many :stories,:foreign_key=>"chat_room_id"
  has_many :topics,:foreign_key=>"chat_room_id"


end

在消息是每个用户的发送的聊天。

在消息模型是:

class Message < ActiveRecord::Base
  belongs_to :user
end

用户模型是:

class User < ActiveRecord::Base
  acts_as_authentic :crypto_provider => Authlogic::CryptoProviders::BCrypt
  validates_presence_of :nick
  validates_uniqueness_of :nick
  has_many :questions
  end

请建议如何

有帮助吗?

解决方案

要跟踪哪些用户在哪个房间,你可以建立聊天室和用户模型之间的关系HABTM。而且,你可以一个last_poll_datetime列添加到用户模型来跟踪用户最后一次(在一分多钟,该部件)轮询消息。

要显示给定房间中所有用户的列表,请使用HABTM连接表,ChatRooms_Users。你会被插入/从该表中,每当用户加入或离开房间删除。

如果您想到期谁收的,而不是点击“留有余地”的浏览器的用户,建立一个清扫任务为每分钟运行,以查找用户last_poll_datetime年龄超过一分钟,从ChatRooms_Users删除其行连接表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top