У меня есть пользовательский метод для моей модели, и я хочу использовать его в таком состоянии, я уже выполняю это для сортировки с помощью пользовательских методов, но не могу найти способ поиска с помощью пользовательские условия.Rails - где с пользовательским модемным условием условия
Теперь у меня есть это, в моей модели
attr_accessible :end, :start
def time_left
self.end.to_i - Time.now.utc.to_i - Time.now.utc_offset
end
def time_left_to_start
self.start.to_i - Time.now.utc.to_i - Time.now.utc_offset
end
def status
if self.time_left_to_start > 0
1 #proximamente
elsif self.time_left_to_start < 0 and self.time_left > 0
2 #funcionando
else
3 #finalizado
end
end
и для моего контроллера
def index
@next_events = Event.all.sort_by(&:time_left).reverse!.reject { |e| e.status != 1 }.take(5)
end
я знаю, что могу написать все условия на метод, где, но моя идея не повторите свое «я» и избегайте цикла для всех событий, чтобы удалить каждый из них, где статус не равен 1, мне просто нужны последние 5 каждый раз, и мне кажется, что действительно плохая идея просить db для всех записей каждый раз. Заранее благодарим!
Это невозможно сделать. Думаю, вам нужно написать кусок кода SQL. –