我正在尝试为注册用户编写一个简单的消息传递系统。我意识到有这方面的宝石,但我正在尝试推出我自己更简单的宝石。
我已经按如下方式设置了我的模型:
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)的事情还是应该由某些控制器逻辑定义?
谢谢!