我只想获得一些关于更好的方法来建模团队/团队成员资格的反馈。
目前,我有以下几点:建模团队
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
?
这个模型的另一个问题是,我在努力寻找确定用户A是用户B拥有一个团队成员的一种很好的方式。我目前在做:
Membership.first(:joins => :team, :conditions => {:id => params[:membership_id], :teams => {:owner_id => current_user}})
其中membership_id是包含用户的成员资格,我试图确定是属于current_user的团队的成员。
因此,任何人有更好的方法来模拟这种?
感谢您的咨询!
编辑:用户确实可以多个团队
如果用户只有一个团队,您并不真正需要会员表/模型。除非会员资格是你存储关于该用户的信息与团队有关的信息,那么你应该在那里存储is_administrator – ErsatzRyan 2009-06-19 15:58:34
也许我应该明确说明,用户可以让我成为多个团队的成员/所有者。 – neiled 2009-06-19 16:00:07