当它适用于多个模型时,我有一个关于 has 和 belongs to many 的问题。我已经看到了其他几个关于 habtm 多个模型的类似问题,但没有一个完全像这样(它们通常适用于两个模型,而不是三个)。
假设我有以下课程:
- 学生们
- 俱乐部
- 房间
学生 habtm 俱乐部——学生可以加入多个俱乐部,并且俱乐部有多个学生。
房间 habtm 俱乐部——一个房间可能有多个俱乐部使用它,一个俱乐部可能使用多个房间。
学生和房间之间没有直接关系。
我认为在同一个类(Club 类)中使用两个 habtm 关系没有任何问题,但我可能会遗漏一些细微之处。
class Student < ActiveRecord::Base
has_and_belongs_to_many :clubs
end
class Clubs < ActiveRecord::Base
has_and_belongs_to_many :students
has_and_belongs_to_many :rooms
end
class Rooms < ActiveRecord::Base
has_and_belongs_to_many :clubs
end
我假设在这种情况下,我也可以在一个或两个关系上使用 :through 。
- 是否有任何已知问题?
- Rails 中是否还有其他一些我没有想到的模式?