Sorting Mongoid Rails 4按创建的asc或desc顺序排序
我有一个使用Mongoid的rails 4应用程序。 我想做的基本工作是根据索引视图中创建的字段降序显示我拥有的图书模型。 在控制器手册\u controller.rb中:Sorting Mongoid Rails 4按创建的asc或desc顺序排序,sorting,date,ruby-on-rails-4,mongoid,Sorting,Date,Ruby On Rails 4,Mongoid,我有一个使用Mongoid的rails 4应用程序。 我想做的基本工作是根据索引视图中创建的字段降序显示我拥有的图书模型。 在控制器手册\u controller.rb中: def index @books = Book.order_by(:created_at.desc) end 这是行不通的。我还尝试了以下2种不起作用的方法: @books = Book.find :all, :order => "created_at DESC" Book.find(:all, :order
def index
@books = Book.order_by(:created_at.desc)
end
这是行不通的。我还尝试了以下2种不起作用的方法:
@books = Book.find :all, :order => "created_at DESC"
Book.find(:all, :order => "created_at DESC").each do |item|
@books << item
end
@books=Book.find:all,:order=>“已在DESC创建”
Book.find(:all,:order=>“在DESC创建”)。每个do |项|
@你可以试试这个
def index
@books = Book.order_by(created_at: :desc)
end
它很好用
def index
@books = Book.order(:created_at => 'desc')
end
它适合我,而不是按使用顺序(取决于rails版本)您可以同时使用“order”和“order\u by”,它们是等效的。
所有这些都是等效的:
Book.order_by(created_at: :desc)
Book.order_by(created_at: -1)
Book.order(created_at: :desc)
Book.order(created_at: -1)
这是来自mongoid 5.1.3“lib/mongoid/criteria/queryable/optional.rb”的源代码:
Book.where(作者:“斯蒂芬·金”).sort({“created_at”:1})-->升序
def index
@books = Book.desc(:created_at)
end
Book.where(作者:“Stephen King”).sort({“created_at”:-1})-->降序
def index
@books = Book.desc(:created_at)
end
它工作正常。你说它不工作是什么意思?您有任何错误吗?微小的改进:@books=Book.order\u by(在::desc创建)
语法错误,加上sort
似乎不是现有的方法。编辑了语法错误。使用mongoid gem时,排序选项可用。现在就试试吧。谢谢你的编辑Book.sort({“created_at”:1})
对我来说仍然无效,但是Book.where(作者:“Stephen King”).sort({“created_at”:1})
有效。
def index
@books = Book.order(:created_at => 'desc')
end