Я просто хотел получить отзывы о лучших способах моделирования членства команды / команды в рельсах.
В настоящее время у меня есть следующее:
class User
has_many :teams, :foreign_key => "owner_id" #user owns this team
has_many :memberships #user is a member of these teams
class Team
belongs_to :team_administrator, :class_name => "User", :foreign_key => "owner_id"
has_many :memberships
class Membership
belongs_to :team
belongs_to :user
Мне не нравится роль администратора команды, потому что я должен утверждать, что он и в членстве, и что он владеет командой. Может быть, было бы лучше иметь свойство is_administrator
Membership
?
Другая проблема с этой моделью заключается в том, что я пытаюсь найти хороший способ определить, является ли UserA членом команды, которой владеет UserB. Я сейчас делаю:
Membership.first(:joins => :team, :conditions => {:id => params[:membership_id], :teams => {:owner_id => current_user}})
Где members_id - членство, содержащее пользователя, которого я пытаюсь определить, является членом команды, принадлежащей current_user.
Так, у кого-нибудь есть лучший способ смоделировать это?
Спасибо за любой совет!
Редактировать: Пользователь действительно может быть владельцем / членом нескольких команд