在我目前正在处理的应用程序中,我坚持设置 3 个模型之间的关联以确保引用完整性。我有一个事件模型、建筑模型和房间模型。现实生活中的关联非常直观。一个事件只能在一个建筑物和一个房间中。一个建筑物显然可以有多个房间。
这是我现在设置的。但是,如果 Event 属于 Buildings,并且 Room 的外键在 Events 表中,Events 如何指定它们的房间?这是您使用 has_many :through 关系的地方吗?将 Building 和 Room 外键存储在 Event 表中是否是一种好习惯,因为 Room 由 Buildings 拥有?在允许指定房间之前需要指定建筑物的条件关系怎么样(例如,有些建筑物有 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