2013-08-20 2 views
1

가입 한 사용자를위한 간단한 메시징 시스템을 작성하려고합니다. 나는 이것을위한 보석이 있다는 것을 깨닫는다. 그러나 나는 더 단순한 것을 굴리기 위해 노력하고있다. 나는 새 대화를 만들고, 그 대화에 메시지를 추가 할 수 있도록 내 경로와 컨트롤러를 설정 한레일 4 : 내부 메시징 시스템

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)일까요, 아니면 일부 컨트롤러 로직에서 정의해야합니까?

감사합니다.

답변

2

이 값은 대화하는 사용자 만 대화 상대 간의 대화에 액세스 할 수 있도록 컨트롤러 논리에 정의해야합니다. 두 사용자 정보 (주로 사용자 ID)는 대화와 함께 저장해야하므로 제한을 적용 할 수 있습니다.