一个模型可以属于第一个模型的多个模型吗?

时间:2014-05-13 12:36:00

标签: ruby-on-rails associations has-one multiple-models

我有两张桌子。 users superpowers

我希望每个user限制为一个superpower。但不同的users可以具有相同的superpower。 (山姆可以有火,约翰可以有闪电,萨拉也可以有闪电。但每个用户只能拥有一个超能力)

我想将外键存储在用户表中。

has_onebelongs_to关系适合此吗?

user has_one superpowersuperpower belongs_to user

rails指南说has_one建立了一对一的关系。但是,细微的细微差别没有得到解决:是否属于"属于"模型(即superpowers) can belong to multiple "has_one-ing" models (i.e.用户`),其中每个关联是一对一的关系(例如,约翰有闪电,莎拉也有闪电)。

或者,是否意味着"属于"模特和"有"模型必须在所有关联中都是唯一的? (例如,如果约翰有照明,莎拉不能有闪电)?

1 个答案:

答案 0 :(得分:3)

查看您的描述(特别是关于外键位于users表中的部分),关系应该是:

Superpower.has_many :users
User.belongs_to :superpower

关联的belongs_to部分始终位于具有外键的模型中。