Rails запрашивает строки с уникальным столбцом

#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 являются единственными классами с одним бронированием, а в других есть два бронирования. В классе на определенную дату может быть ноль, одно или несколько бронирований. Мой вопрос заключается в том, как получить ровно одно бронирование каждого класса и даты, т. Е. Пропустить бронирование, если оно уже было получено для того же класса и даты.