我可以在数据库中对我的用户进行排序,这样我每次查询时都不必说 order_by("created_at desc") 吗?
听起来对我来说是一件合乎逻辑的事情,但我不知道这是否可能以及它是否是最佳实践?
解决方案
我已经在使用 default_scope 并且据我所知,这是最好的方法吗?非常感谢您的回答。
我可以在数据库中对我的用户进行排序,这样我每次查询时都不必说 order_by("created_at desc") 吗?
听起来对我来说是一件合乎逻辑的事情,但我不知道这是否可能以及它是否是最佳实践?
解决方案
我已经在使用 default_scope 并且据我所知,这是最好的方法吗?非常感谢您的回答。
关于默认范围有不同的看法,但要实现您的要求:
http://apidock.com/rails/ActiveRecord/Base/default_scope/class
class User < ActiveRecord::Base
default_scope order('created_at DESC')
### other model code here ###
end
您应该能够向您的数据库表添加一个或多个索引。在实时系统上运行它时要小心,因为在大表上创建索引的开销可能会被禁用。
编辑:应该扩大。
通过创建索引,您仍然需要订购,但您的订购/排序会更有效率。