ruby-on-rails - Rails5.2 - Active Record .select() 在调用 .count 时导致错误
问题描述
如何将另一列添加到范围并仍然能够调用 .count、.find、.where 等。
User.all.select('users.*,"one" as one').count
结果:
(1.3ms) SELECT COUNT(users.*,"one" as one) FROM "users"
Traceback (most recent call last):
1: from (irb):7
ActiveRecord::StatementInvalid (PG::SyntaxError: ERROR: syntax error at or near "as")
LINE 1: SELECT COUNT(users.*,"one" as one) FROM "users"
^
: SELECT COUNT(users.*,"one" as one) FROM "users"
解决方案
User.all.select('users.*,"one" as one').count(:all)
和
User.all.select('users.*,"one" as one').count(:id)
两者都有效,因为它指定了 SQL 代码应该依赖的内容。
推荐阅读
- python - 坚持制作数独块值列表?[Python]
- c++ - 在子语句的最外层块中重新声明的变量
- directx-11 - DirectX11中CheckDeviceState的正确方法是什么?
- php - ufw ubuntu 不规则地阻塞 ftp_connect() PHP
- node.js - Yarn Create - npm 注册表似乎有问题
- visual-studio-code - Lua模块视觉工作室代码?
- react-native - Xcode 12 部署警告“IPHONEOS_DEPLOYMENT_TARGET”
- node.js - 会话属性在 React Express 应用程序中的请求中不会持续存在
- javascript - 如何使用 Nodejs 和 Typescript 从 Lambda 中的事件中获取 Cogntio 数据
- arm - 什么样的C代码可以编译成像“LDR R3,[R4,#0x18]”这样的汇编代码,其中R3是一个指针