Ассоциация солнечных пятен полиморфная c диапазон дат - PullRequest
0 голосов
/ 25 февраля 2020

у меня есть три модели

класс, расписание и мероприятие

class Event

end

class Schedule
    belongs_to :source, polymorphic: true, optional: true
    belongs_to :event_type
end

в моем расписании есть столбец: start_date,: end_date и: type_id

class Classroom
    has_many :schedules, class_name: "Schedule", as: :source, dependent: :destroy

    searchable do

     date :start_date do
        start_date = []
        starte_date >> schedules.map {|a| a.start_date}
      end

      date :start_date do
        end_date = []
        end_date >> schedules.map {|a| a.end_date}
      end
     #i dont know if this the right searchable do
    end
end

мои цели - поиск в классе по расписанию, например

это моя запись

запись 1

класс: class1

расписание: type1, дата начала: 1 февраля 2020 года, дата окончания: 2 февраля 2020 года

расписание: тип1, дата начала: 10 февраля 2020 года, дата окончания: 11 февраля 2020 года

расписание: тип2, дата начала: 1 февраля 2020 года, конечная дата: 2 февраля 2020

запись 2

классная комната: class2

расписание: type1, начальная дата: 1 февраля 2020, конечная дата: 2 февраля 2020

расписание : type1, start_date: 10 февраля 2020 г., end_date: 11 февраля 2020 г.

расписание: type2, start_date: 1 февраля 2020 г., end_date: 2 февраля 2020 г.

это пример записи, которую я хочу для достижения

, если диапазон дат от 1 февраля 2020 года до 2 февраля 2020 года, записи должны быть:

класс 1 * 10 38 *

расписание: type1, дата начала: 1 февраля 2020 года, дата окончания: 2 февраля 2020 года

расписание: тип2, дата начала: 1 февраля 2020 года, дата окончания: 2 февраля 2020 года

класс 2

расписание: тип1, дата начала: 1 февраля 2020 года, дата окончания: 2 февраля 2020 года

расписание: тип2, дата начала: 1 февраля 2020 года, дата окончания: 2 февраля 2020 года

если диапазон дат - с 1 февраля 2020 года по 11 февраля 2020 года, записи должны быть:

класс 1

расписание: type1, дата начала: 10 февраля 2020 года, дата окончания: 11 февраля 2020 года

расписание: type2, дата начала: 1 февраля 2020 года, дата окончания: 2 февраля 2020 года

класс 2

расписание: тип1, дата начала: 10 февраля 2020 года, дата окончания: 11 февраля 2020 года

расписание: type2, start_date: 1 февраля 2020 года, end_date: 2 февраля 2020 года

я не знаю, достижимо ли это, извините за мое сложное объяснение, не могу объяснить правильно, я просто проиллюстрировал мой пример выше спасибо заранее за помощь мне T_T

...