0

複数のモデルに適用される場合の、多くの所有者と所有者について質問があります。複数のモデルを持つ habtm について他にもいくつかの同様の質問を見てきましたが、このようなものはありません (通常、3 つではなく 2 つのモデルに適用されます)。

次のクラスがあるとします。

  • 学生
  • クラブ
  • 部屋

学生はクラブに所属する - 学生は複数のクラブに参加でき、クラブには複数の学生がいます。

Rooms habtm Clubs -- ルームにはそれを使用する複数のクラブがあり、クラブは複数のルームを使用する場合があります。

学生と部屋の間に直接的な関係はありません。

同じクラス (Club クラス) で 2 つの 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

あなたが投稿したのは、これに対する正しい最適な設計です。

部屋と学生の間に類似点がないため、ポリモーフィックは適切ではなく、関係は正しいです。

于 2012-08-17T22:44:55.693 に答える