我正在尝试检索 21 张观看次数最多的照片的列表。我的 Controller 中有这段代码:
@photos = Photo.where("group_id = (?)", params[:target_id]).order('view_count ASC').limit(21)
它输出以下 SQL:
SELECT "photos".* FROM "photos" WHERE group_id = ('205') ORDER BY "photos"."timestamp" DESC, view_count ASC LIMIT 21
timestamp DESC
查询来自哪里,我该如何摆脱它?照片按时间顺序返回,而不是按观看次数返回。
最佳答案
也许您在Photo
模型中使用了default_scope
。如果是这样,请尝试使用:
@photos = Photo.unscoped.where("group_id = (?)",params[:target_id]).order('view_count ASC').limit(21)
关于mysql - Rails 插入不正确的 `order` 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38711875/