Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Rails模型概念_Sql_Ruby On Rails_Activerecord - Fatal编程技术网

Sql Rails模型概念

Sql Rails模型概念,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我正在rails上建立一个住宿预订网站,我对模型的一个方面感到困惑。因此,通常我所知道的构建它的方式是通过拥有一个房间模型,这个房间模型有很多预订,而预订模型属于房间模型。问题是,这次我希望访问者能够在一次预订中预订多个房间。这个房间有很多预定房间吗?有人能帮我找到一种方法来建立它吗?我必须使用一个表单来生成多个记录吗?我很抱歉我的无知,这是第一次这样的概念落入我的手中 非常感谢大家您基本上需要定义一个多对多关系,rails有两个选项可以这样做 其中一个选项是has_和\u belient_to

我正在rails上建立一个住宿预订网站,我对模型的一个方面感到困惑。因此,通常我所知道的构建它的方式是通过拥有一个房间模型,这个房间模型有很多预订,而预订模型属于房间模型。问题是,这次我希望访问者能够在一次预订中预订多个房间。这个房间有很多预定房间吗?有人能帮我找到一种方法来建立它吗?我必须使用一个表单来生成多个记录吗?我很抱歉我的无知,这是第一次这样的概念落入我的手中


非常感谢大家

您基本上需要定义一个多对多关系,rails有两个选项可以这样做

其中一个选项是
has_和\u belient_to_many
关系,您可以在上面阅读。然而,我更喜欢的选择是通过:[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

实际上,您有一个中间表来创建多对多联接

您基本上需要定义一个多对多关系,rails有两个选项可以这样做

其中一个选项是
has_和\u belient_to_many
关系,您可以在上面阅读。然而,我更喜欢的选择是通过:[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

实际上,您有一个中间表来创建多对多联接

谢谢大家!!你真的帮我弄明白了,谢谢!你真的帮我弄明白了。