私が現在取り組んでいるアプリケーションでは、参照整合性を確保するために 3 つのモデル間の関連付けを設定することに行き詰まっています。Event モデル、Building モデル、Room モデルがあります。実際の関連付けは非常に直感的です。イベントは 1 つの建物と 1 つの部屋にのみ存在できます。建物は明らかに複数の部屋を持つことができます。
これが私が今設定したものです。ただし、イベントが建物に属し、ルームの外部キーがイベント テーブルにある場合、イベントはどのようにしてルームを指定できるでしょうか。これは has_many :through 関係を使用する場所ですか? 部屋は建物によって所有されているため、建物と部屋の両方の外部キーを Event テーブルに保存することは良い方法ですか? 部屋を指定できるようにする前に、建物を指定する必要があるという条件付きの関係はどうでしょうか (たとえば、部屋が 2 つある建物もあれば、部屋が 20 ある建物もある)。
申し訳ありませんが、私はこれについて非常に不明です。助けてくれてありがとう!
class Event < ActiveRecord::Base
belongs_to :building
end
class Building < ActiveRecord::Base
has_many :events
has_many :rooms
end
class Room < ActiveRecord::Base
belongs_to :building
end