def User
has_many :conversation_participants
end
def Conversation
has_many :conversation_participants
end
def ConversationParticipant
belongs_to :conversation
belongs_to :user
end
Я бы хотел добавить валидацию в ConversationParticipant, чтобы существовала только одна запись одного и того же пользователя (user_id) для одного разговора (dialog_id). Так что это будет неверно:
id user_id conversation_id
1 1 1
2 2 1
3 1 1 # <-- invalid
4 3 1
Любые ключевые слова, которые описывают эту проблему (для будущего Googlin ') приветствуются.
РЕДАКТИРОВАТЬ: некоторый код
c = Conversation.first
c.conversation_participants.build(:user => User.first)
c.save # => true
c.conversation_participants.build(:user => User.first)
c.save # => false