Rails模型概念

时间:2018-07-30 13:26:55

标签: sql ruby-on-rails activerecord

我正在用铁轨建造一个住宿预订网站,我对模型的一个方面感到困惑。因此,通常我了解构建它的方式是通过具有多个预订的Room模型,而Reservation模型属于Room模型。问题是这次我希望访客能够一次预订多个房间。会议室是否有许多预订协会适用于该用途?谁能帮助我找到一种构建方式,我是否必须使用一个可以形成多个记录的表格?我为自己的无知感到抱歉,这是我第一次将这样的概念落入我的手中。

非常感谢大家

1 个答案:

答案 0 :(得分:3)

从本质上讲,您需要定义多对多关系,并且Rails有几个选择。

一个选择是has_and_belongs_to_many关系,您可以在here上进行阅读。但是,我的首选方法是使用has_many, through: [model]这样的方法:

class Room
  has_many :room_reservations
  has_many :reservations, through: :room_reservations
end

class Reservation
  has_many :room_reservations
  has_many :rooms, through: :room_reservations
end

class RoomReservation
  belongs_to :room
  belongs_to :reservation
end

基本上,您有一个中间表来创建多对多联接。