2014-11-03 5 views
2

Вот моя структура:Rails 4 - включает в себя has_many с аргументом

  • A Группа has_many Пользователи.
  • Пользователь has_many Задачи.
  • Задача имеет обязательную дату.

Я хочу отобразить одну группу, в том числе пользователей, с их соответствующими задачами, отфильтрованными через due_date.

Так что мой запрос выглядит:

group.includes(:users => :tasks) 

Я хотел бы сделать что-то вроде этого:

group.includes(:users => :tasks(min, max)) 

Где минимальное и максимальное интервал для DUE_DATE. Но передача аргументов внутри включений не работает. Это бросает мне синтаксическую ошибку. Я нашел кое-что о состоянии лямбда, но я не могу сказать, является ли это функцией Rails 3 или Rails 4. Это в основном довольно плохо документировано.

ответ

1

Вот что я сделал в конце концов:

time_range = Date.today.beginning_of_week..Date.today.end_of_week 
group.includes(:users => :tasks).where(tasks: { due_date: time_range }) 

Довольно простой, но работает.

Смежные вопросы