Лучшие практики ассоциаций групп Rails / пользователей - PullRequest
1 голос
/ 27 июня 2011


Я довольно новичок в Ruby и Rails, и я разрабатываю веб-приложение, которое требует нескольких групп, каждая из которых имеет много участников, но группы и участники полностью отделены друг от друга.

т. Е. Группа 1 имеет членов 1, 2 и 3
В группе 2 есть участники 4, 5 и 6
группа 3 имеет членов 7, 8 и 9

также каждый из участников может отправлять сообщения в каталог своей группы.

Я пытаюсь найти лучшую логику, чтобы подходить к этому с точки зрения управления базами данных и т. Д. Это так же просто, как создать модель групп, которая имеет членов has_many, которые отправляет сообщения has_many и оттуда?

Полагаю, я просто волнуюсь, что со временем вещи начнут путаться с входом в группу, входом в систему отдельных пользователей и т. Д.

Спасибо за любую помощь в этом, я понимаю, что это довольно широкий вопрос на данный момент.

1 Ответ

3 голосов
/ 27 июня 2011

Я бы смоделировал это следующим образом:

class Group < ActiveRecord::Base
  has_many :members
  has_many :posts, :through => :members
end

class Member < ActiveRecord::Base
  belongs_to :group
  has_many   :posts
end

class Post < ActiveRecord::Base
  belongs_to :member
end
...