我想知道是否有人可以帮助我为以下场景建模。我在 Mongoid 中有一个 User 类、一个 Event 类和一个 Venue 类。我希望用户成为 Event 或 Venue 或两者兼而有之的管理员。这些不同的角色最终可能会失控,我想知道这是否是多态性的一个好例子。
场地
has_and_belongs_to_many :admins, :class_name=> 'User', :inverse_of=>:venue_adminships
has_and_belongs_to_many :managers, :class_name=> 'User', :inverse_of=>:venue_managementships
事件
has_and_belongs_to_many :admins, :class_name=> 'User', :inverse_of=>:event_adminships
has_and_belongs_to_many :managers, :class_name=> 'User', :inverse_of=>:event_managementships
用户
has_and_belongs_to_many :venue_adminships, :class_name=>"Venue", inverse_of: :admins
has_and_belongs_to_many :venue_managementships, :class_name=>"Venue", inverse_of: :managers
has_and_belongs_to_many :event_adminships, :class_name=>"Event", inverse_of: :admins
has_and_belongs_to_many :event_managementships, :class_name=>"Event", inverse_of: :managers
我需要能够调出用户的“管理员”(当我在它的时候,任何人都有比“管理员”更好的名字......?)以及调出所有管理员的事件。如果没有这么多重复的关系,有什么更简洁的方式来表示这一点?