У меня есть веб-приложение со следующими моделями: Смены, Годы, Оформление заказа, Продажи и Посетители.
Сдвиг has_many Оформление заказа, Продажи, Посетители Год has_many Сдвиги
Оформление заказа,Продажи и посетители принадлежат к сменным сменам принадлежат к году
В моем приложении я хочу, чтобы присутствовало много разных лет, хотя в любой момент времени активен только ОДИН.Например, при отображении сдвигов я хочу, чтобы отображались только сдвиги за активный год.Это достаточно просто.
С чем мне действительно тяжело работать - это написать запрос, чтобы получить все платежи за активный год.Есть ли простой способ сделать это?Активный год фактически устанавливается в переменной сеанса, называемой session [: current_year_id].Я думал, что лучший способ сделать это - сделать что-то вроде:
@checkouts = Shift.where('year_id = ?',session[:current_year_id]).checkouts
Но это не работает для меня.Что мне нужно изменить, чтобы заставить это работать?
Обратите внимание, что оформление заказа, продажи и посетители НЕ имеют своего собственного year_id.У них есть год_ид через смену, к которой они относятся.
Решено:
Я проголосовал за все ответы, поскольку все помогли.Я использовал лямбда-выражение for_year.Я проголосовал за все ответы.
Окончательный ответ должен был использовать:
Shift.for_year(session[:current_year_id]).collect{ |shift| shift.checkouts }