反向顺序的范围排序不起作用

时间:2014-06-09 12:31:07

标签: ruby-on-rails ruby scopes

我有我的范围:

scope :latest_photos, -> {order(:created_at).reverse_order.limit(10)}

它应该把最新照片放在第一位吗?好的照片放在最后一个地方。

我也尝试过:

scope :latest_photos, -> {order('created_at DESC').limit(10)} 

但没有。有任何想法吗?谢谢!

修改

这里有些东西不起作用:

的routes.rb

get 'spots/ultimos' => 'photos#latest

照片控制器

def latest
        @categories = Category.all
        @zones = Zone.all
        @photos = Photo.latest_photos
        @action = 'general'
        @photos = Photo.paginate(:page => params[:page])
        render :index
    end

模型

  scope :latest_photos, -> {order(created_at: :desc).limit(10)}

1 个答案:

答案 0 :(得分:3)

def latest
    @categories = Category.all
    @zones = Zone.all
    @photos = Photo.latest_photos
    @action = 'general'
    @photos = Photo.paginate(:page => params[:page])
    render :index
end

您已分配@photos个变量两次,第二个分配会覆盖前一个变量。而是做:

def latest
    @categories = Category.all
    @zones = Zone.all
    @photos = Photo.latest_photos
    @action = 'general'
    render :index
end

要分配的实际值取决于您希望在此处实现的目标。由于行动是最新的,你的范围有限,我认为你不需要分页。