2012-08-25 2 views
1

페이스 북과 비슷한 스레드 메시지 시스템을 설정했습니다. 한 사용자가 여러 대화를 동시에 진행할 수 있습니다. 이러한 각 대화에는 관련 그룹의 고유 한 그룹이 있으며 각 그룹에는 여러 개의 메시지가 포함되어 있습니다. 많은 방법 :이를 수행하는 더 좋은 방법은 무엇입니까?


class Message < ActiveRecord::Base 
    belongs_to :conversation 
end 

class User < ActiveRecord::Base 
    has_many :involvements 
    has_many :conversations, through: :involvements, unique: true 
end 

class Involvement < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :involvable, polymorphic: true 
end 

class Conversation < ActiveRecord::Base 
    has_many :involvements, as: :involvable 
    has_many :participants, through: :involved, class_name: "User", unique: true 
    has_many :messages 
end 
는 나는이 작업을하지만, 더 좋은, 더 효율적인 방법이 있어야한다처럼 나는 느낌을 도울 수있어 이 설정을 압축하려면 예를 들어 3 개의 모델을 사용하십시오. 또는 어쩌면 독특한 열 또는 무언가와 habtm을 사용하여 ...

메시지를 보내는 네 개의 모델은 너무 많은 것 같습니다. 어떤 제안? 아니면 내가 걱정할 필요가없는 무엇인가?

+2

왜 4가 너무 많은 것처럼 보입니까? 이에 대한 4 가지 데이터가 있습니다. 사용자, 대화 참여, 대화 및 해당 대화 내의 메시지입니다. 설정이 매우 합리적입니다. – deefour

답변

관련 문제