Rails:一个有很多选择的模型



假设我有一个用户。一个用户可以有几种喜欢的颜色。然后我让用户用某些喜欢的颜色来搜索其他用户。我应该如何构建这张表?有一个每种颜色有20列的表似乎是个坏主意,但试图在一列上进行字符串匹配似乎也很混乱。

Users
id     name
1      Don

FavoriteColors
id     user_id     red    green    blue   orange    violet...
1      1           0      0        1      1         1

以及缩短的型号:

User
  has_many :colors
FavoriteColor
  belongs_to :user

查看2.6此处上的has_and_bellongs_to_many协会

has_and_belongs_to_many协会对于许多对许多关系来说,这将是最好的方法,因为它是正常化的。

最新更新