[英]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.