0

当它适用于多个模型时,我有一个关于 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 。

  1. 是否有任何已知问题?
  2. Rails 中是否还有其他一些我没有想到的模式?
4

1 回答 1

0

您发布的是针对此的正确和最佳设计。

room 和 student 之间没有相似之处,所以多态是不合适的,并且关系是正确的。

于 2012-08-17T22:44:55.693 回答