我正在建立一个有用户和品牌的应用程序。大多数用户将不会与一个品牌相关联,并且只能在品牌页面上发表评论。然而,一些用户将与单一品牌联系在一起。我希望这些用户成为“管理员”或该品牌的所有者。例如,用户A和B都是品牌的“管理员”,因此可以创建/编辑/更新品牌等等。我的问题是,如何设置品牌资源,使其成为"belongs_to“多个用户?我知道我可以说是品牌have_many用户,但是说对象“有”用户是不是很奇怪呢?“属于”用户更合适吗?这一描述让我相信:“例如,说供应商拥有帐户比帐户拥有供应商更有意义。”
发布于 2018-04-14 22:44:44
这绝对是has_many的关系。
但是,将这些特殊用户称为“管理员”或“管理员”可能会更清楚一些。
class Brand
has_many :administrators, class_name: 'User'
end如果一个用户可以成为多个品牌的管理员,那么您将需要一个连接表,或者是HABTM或HMT。HMT是更好的选择,以防您想要存储关于连接的特性(例如,当他成为管理员时)。
class BrandUser
belongs_to :user
belongs_to :brand
end
class Brand
has_many :brand_users
has_many :administrators, through: :brand_users, source: :user
end
class User
has_many :brand_users
has_many :brands, through: :brand_users
endhttps://stackoverflow.com/questions/49836462
复制相似问题