В моем приложении Ruby on Rails компании по прокату велосипедов могут управлять всеми своими велосипедами (бронирование, оплата и т. Д. c.).
Контекст Я хотел бы предложить компаниям по прокату велосипедов (shops
) возможность создать форму бронирования на своем собственном веб-сайте, чтобы они могли позволить клиентам бронировать bike
.
- В этой форме бронирования будет указано
bike_categories
, из которых bikes
доступны на определенную дату arrival
и departure
.
Вопрос После прочтения некоторой документации в Интернете, я думаю, мне следует создать отдельную таблицу, чтобы справиться с доступностью по bike_category
, которая затем показала бы count
bikes
доступно для выбранной даты arrival
и departure
.
=> пример: между 1-1-2020
и 1-2-2010
20
bikes
из bike_category
"горный велосипед" доступен
Но я не уверен как должна выглядеть структура таблицы, поскольку reservation
находится на bike
-уровне, который, следовательно, принадлежит bike_category
?
Code
модели
class Shop < ApplicationRecord
has_many :bike_categories, dependent: :destroy
has_many :bikes, through: :bike_categories
has_many :reservations, dependent: :destroy
end
class Reservation < ApplicationRecord
belongs_to :shop
belongs_to :bike
end
class Bike < ApplicationRecord
belongs_to :bike_category
has_many :reservations, dependent: :destroy
end
class BikeCategory < ApplicationRecord
belongs_to :shop
has_many :bikes, dependent: :destroy
end