#ruby-on-rails #ruby-on-rails-5
Вопрос:
У меня есть модель бронирования и таблица «бронирования» со следующими столбцами: идентификатор, дата, идентификатор класса. Примеры данных:
- (1, 2021-09-23, 47)
- (2, 2021-09-23, 47)
- (3, 2021-09-22, 23)
- (4, 2021-09-20, 12)
- (5, 2021-09-20, 12)
- (6, 2021-09-20, 47)
Занятия могут проводиться регулярно (например, еженедельно), которые могут быть забронированы несколькими людьми в один и тот же день. Например, есть два бронирования для одного и того же класса на 2021-09-23, и есть еще одно бронирование для того же класса, но ранее на 2021-09-20.
Как я могу запросить все заказы только с одним бронированием на класс и дату? Для приведенных выше примеров данных я хотел бы получить:
- (1, 2021-09-23, 47)
- (3, 2021-09-22, 23)
- (4, 2021-09-20, 12)
- (6, 2021-09-20, 47)
бронирование = Бронирование.??
Комментарии:
1. Ожидание «Как я могу запросить все бронирования только с одним бронированием на класс и дату» неверно. Только одно бронирование на класс и дату составляет всего 3 и 6. У других по 2 на класс/дату. Воспользуйся
group_by
.2. Да, в приведенном выше примере только 3 и 6 являются единственными классами с одним бронированием, а в других есть два бронирования. В классе на определенную дату может быть ноль, одно или несколько бронирований. Мой вопрос заключается в том, как получить ровно одно бронирование каждого класса и даты, т. Е. Пропустить бронирование, если оно уже было получено для того же класса и даты.