Я делаю этот запрос в MySql
Image.find( :all,
:conditions => ["created_at > ? && approved = 1", @image.created_at],
:order => "created_at DESC", :limit => 5)
Однако, я хочу, чтобы изображения создавались непосредственно перед созданием данного изображения. Прямо сейчас он возвращает список изображений из верхней части списка, которые были созданы намного, намного раньше этого изображения. Как я могу это сделать?
Мое решение больше похоже на хак, но я не уверен в лучшем. Я установил: order = > "created_at ASC"... а затем изменил результирующий массив и получил ответ, который я хотел. Хмм.
В вашем текущем запросе будут найдены изображения, более новые, чем @image, потому что вы используете > . Вам нужно будет решить, какой диапазон вы хотите посмотреть. Какие временные рамки вы считаете "раньше"? Минуты? Секунды?
Чтобы найти все изображения, созданные за 5 минут @image, попробуйте:
Image.find(:all, :conditions => ["(created_at > ? and created_at < ?) and approved = 1", @image.created_at.advance(:minutes => -5), @image.created_at])