有什么区别吗
User.count
和
User.count(:all)
当我使用
ModelName.count(:all)
时,我将 rails 升级到 4.0它运行良好,但如果我使用 ModelName.count
发生以下错误。顺便说一下,他们的机器人在 rails 3.2 中运行良好SELECT COUNT() FROM "users"
PG::WrongObjectType: ERROR: count(*) must be used to call a parameterless aggregate function
LINE 1: SELECT COUNT() FROM "users"
最佳答案
我也遇到了这个问题。更改是在 中引入的this commit .像一条线
User.count
现在会抛出
ActiveRecord::StatementInvalid
错误,因为它会生成 SELECT COUNT() FROM users
在 Postgres 上。截至本次提交,修复方法是将您的代码更新为User.count(:all)
This commit 使用
:all
恢复以前存在的功能作为传递给 ARel 的“列”,导致有效的 SQL 查询 SELECT COUNT(*) FROM users
.我的
Gemfile
最初有以下内容(如评论中所述)gem "rails", github: "rails/rails", branch: "4-0-stable"
但我需要运行
bundle update rails
下拉上面提到的较新的提交。
关于ruby-on-rails - Model.count 和 Model.count 之间的 Rails 差异(:all),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252570/