繁体   English   中英

Rails 4:内部消息传递系统

[英]Rails 4: internal messaging system

我正在尝试为注册用户编写一个简单的消息传递系统。 我意识到这是有宝石的,但我正在尝试推出自己更简单的宝石。

我已经按照以下步骤设置了模型:

class Conversation < ActiveRecord::Base
  has_many :messages, dependent: :destroy
  belongs_to :sender, class_name: "User"
  belongs_to :receiver, class_name: "User"
  validates_presence_of :sender_id, :receiver_id
end

class Message < ActiveRecord::Base
  belongs_to :conversation
end

class User < ActiveRecord::Base
  has_many :conversations, foreign_key: "sender_id"
  has_many :recipients, through: :conversations, source: :receiver
end

我已经设置了路由和控制器,以便可以进行新的对话,并向这些对话添加消息。 但是,我试图弄清楚如何做到这一点,以便只有登录的用户才能与另一个用户开始对话。 没有其他用户应该能够访问该对话。

这是权限(cancan)的事情,还是应该由某些控制器逻辑定义?

谢谢!

这应该在控制器逻辑中定义,以便只有正在交谈的用户才能访问他们之间的对话。 应该将两个用户信息(主要是其用户ID)与对话一起存储,以便可以应用限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM