Rails 3 - ActiveRecord и обратная сортировка - PullRequest
8 голосов
/ 13 февраля 2012

У меня есть следующие данные в базе данных:

1
2
3
4
5

И я хотел бы получить вывод:

3
4
5

Мне нужно, чтобы это распечатать в виде:

<%car.colors.limit(3).order('created_at ASC').each do |color|%>
  ...

Я знаю, что существует reverse_order , но существует что-то вроде reverse sort ?

(я знаю, что возможно загрузить данные в массива затем пройти через массив, но этот путь не очень эффективен)

Ответы [ 3 ]

20 голосов
/ 13 февраля 2012

Как насчет просто сделать

<%car.colors.limit(3).order('created_at DESC').reverse.each do |color|%>
18 голосов
/ 22 мая 2012

для рельсов 4:

[Model].order(column: :desc)

Для рельсов 3:

[Model].order("<column> DESC")

Для рельсов 2:

[Model].all(:order => "<column> DESC")
0 голосов
/ 17 сентября 2015

Решение в одну строку

в вашем контроллере используется:

class Api::ImagesController < ApplicationController

  def index
    @posts =  Post.all.paginate(:page => params[:page], :per_page => 4).order(id: :desc)
    render :json => @posts.to_json(:methods => [:image_url])
  end

end
...