Ruby on Rails "Где" метод Postgres - PullRequest
       6

Ruby on Rails "Где" метод Postgres

0 голосов
/ 29 августа 2018

Я так запутался здесь. Модель «Мои события» имеет много расписаний. В моей модели расписаний у меня есть атрибуты даты и округа. Модель расписания принадлежит Событию.

Я фильтрую по параметру [county_id:] В моем контроллере.

Я хочу найти все события, у которых county_id равен 0, скажем так.

Ассоциация Event.schedules.county Я получил это, чтобы работать для поиска аналогичных параметров для категории

Событие относится к категории Категория has_many: события

    if params[:category].present?
        @category_id = Category.find_by(name: params[:category]).id
        @events = Event.where(category_id: @category_id).order("created_at DESC")
    elsif params[:county].present?
        @schedules = Schedule.find_by(county: params[:county])
    else
        @events = Event.where(status: 1).order("created_at DESC")
    end

Как вы можете видеть здесь. Я могу захватить группу расписаний и видеть, и event_id прикреплен к каждому. Как я могу сделать так, чтобы мой интерфейс мог просто продолжать цикл по переменной @events вместо цикла по переменной @schedules и необходимости идти schedule.event.title и т. Д.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 29 августа 2018

Ответ ниже. Спасибо @jvillian за указание в правильном направлении.

    # simple filter for category select on idex page    
elsif params[:category].present?
    @category_id = Category.find_by(name: params[:category]).id
    @events = Event.where(category_id: @category_id).order("created_at DESC")
elsif params[:county].present?
    @events = Event.joins(:schedules).where(schedules: {county: params[:county]}).all
else
    @events = Event.where(status: 1).order("created_at DESC")
end
...