我在任何地方都找不到这个文档,但这是我的问题:当我通过活动记录查询并使用“only”时,“order”子句被忽略。例如我有一个博客模型:
Blog.order('id desc')
首先返回所有具有最高 ID 的博客 - 正如预期的那样,但是:
Blog.order('id desc').only(:id)
仅返回 id(如预期的那样)但 order 子句被完全忽略,最小的 id 首先出现。
我已经用 Ruby 1.9.3p327 以及 Rails 4.0.0.beta1 和 Rails 3.2.13 对此进行了测试,我得到了相同的结果。
这是功能还是错误?对我来说这是一个错误,因为 Rails 工作人员大肆宣扬 find_by_sql 并不是真正需要的,但在这种情况下它是:
Blog.find_by_sql("select id from blogs order by id desc")
这给出了正确的答案。