我使用rails ransack(https://github.com/ernie/ransack)来允许用户过滤和排序一些记录.我用传统的方法得到经过过滤和排序的记录.

 @invoices = Invoice.search(params[:q]).result

现在我想得到一些概要信息

 @invoices = Invoice.search(params[:q]).result
 @summary = @invoices.select("sum(balance) as balance_total").first

除非用户指定要排序的字段.我得到了SQL错误:

 Column "project_name" is invalid in the ORDER BY clause because 
 it is not contained in either an aggregate function or the GROUP BY clause

我可以从范围中删除排序吗?怎样

谢谢

推荐答案

可以使用空字符串调用reorder方法.例如.:

Article.order('headline asc').to_sql
#=> "SELECT `articles`.* FROM `articles`  ORDER BY headline asc"

Article.order('headline asc').reorder('').to_sql
#=> "SELECT `articles`.* FROM `articles`"

Ruby-on-rails相关问答推荐

rails:如何在表单验证后使用涡轮刷新列表

我使用rbenv安装Ruby,但我在使用";gem";->;错误:执行gem时遇到此错误.(Errno::EACCES)权限被拒绝

尽管安装并需要 pry-rails gem,但 Rails 容器内出现未定义方法‘pry’错误

根据表单内的 Select 字段值渲染部分内容

如何通过graphqlMutations 从rails销毁当前用户会话

无法加载此类文件 -- mysql2/mysql2

使用 Ruby On Rails 的多个用户模型,并设计有单独的注册路由,但只有一个共同的登录路由

如何在 Rails 中使用延迟作业(job)取消预定作业(job)?

在公共 Rails 应用程序中将敏感数据存储在哪里?

mongoid 中 embeds_many 和 has_many 的区别

什么是Ruby 用于 BESIDES 轨道?

关闭 Firefox 中文本字段的自动完成功能

批量查找 mongoDB 记录(使用 mongoid ruby​​ 适配器)

我们如何在 Rails Mailer 中设置邮箱发件人的名称?

您将 Rack 中间件文件和要求放在哪里?

在 Devise on Rails beta 3 中创建管理员用户

Rails 3 设计,current_user 在模型中不可访问?

如何使用 url 连接到 postgresql

使用 ActiveRecord 获取列名

Rails - 邮件,将正文作为纯文本获取