サインアップしたユーザー向けの簡単なメッセージング システムを作成しようとしています。これには宝石があることに気づきましたが、私は自分のより単純なものを作ろうとしています。
モデルを次のように設定しました。
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
新しい会話を作成し、それらの会話にメッセージを追加できるように、ルートとコントローラーを設定しました。ただし、ログインしたユーザーのみが他の1人のユーザーと会話を開始できるようにする方法を見つけようとしています。他のユーザーはその会話にアクセスできません。
これはアクセス許可 (cancan) の問題ですか、それともコントローラー ロジックで定義する必要がありますか?
ありがとう!