Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting Mongoid Rails 4按创建的asc或desc顺序排序_Sorting_Date_Ruby On Rails 4_Mongoid - Fatal编程技术网

Sorting Mongoid Rails 4按创建的asc或desc顺序排序

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

我有一个使用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 => "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