mysql - Rails 插入不正确的 `order` 语句

标签 mysql ruby-on-rails

我正在尝试检索 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/

相关文章:

MYSQL 查询多个日期的计数

jquery - 将 <a href> 附加到 rails 中的关键字

javascript - 在 javascript 中将包含 HTML 的哈希树解析为 JSON

ruby-on-rails - 如何为 Rails map 配置文件配置 Google Maps?

mysql - 根据与另一张表相关的某些条件更新一张表(MySQL)

mysql - 无法导入 MYSQL 函数 - 错误 1064 (42000)

ruby-on-rails - Rails .reject 将 ActiveRecord::Relation 类型转换为类型数组

jquery - 使用typeahead.js的Rails-400(错误请求)

php - 从单个选择选项列表返回多个值 PHP

mysql - 内部连接 ​​- 错误 1241 (21000) : Operand should contain 1 column(s)