Ruby on rails rails Model.count和Model.count之间的差异(:all)
两者之间有什么区别吗Ruby on rails rails Model.count和Model.count之间的差异(:all),ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,两者之间有什么区别吗 User.count 及 我将rails升级到4.0,然后当我使用ModelName.count(:all)时,它运行良好,但是如果我使用ModelName.count时,会出现以下错误。顺便说一句,它们的bot在rails 3.2中运行良好 SELECT COUNT() FROM "users" PG::WrongObjectType: ERROR: count(*) must be used to call a parameterless aggregate fu
User.count
及
我将rails升级到4.0,然后当我使用ModelName.count(:all)
时,它运行良好,但是如果我使用ModelName.count
时,会出现以下错误。顺便说一句,它们的bot在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"
我想他们之间没有区别 通过不传递任何要计数的参数,它将返回模型所有行的计数
我也遇到了这个问题。此更改是在中引入的。线条
User.count
现在将抛出一个ActiveRecord::StatementInvalid
错误,因为它将从Postgres上的用户生成SELECT COUNT()。在此提交时,修复程序是将代码更新为
User.count(:all)
恢复以前存在的功能,使用:all
作为“列”传递给ARel,从而从用户处生成有效的SQL查询选择计数(*)
我的Gemfile
最初有以下内容(如评论中所述)
但是我需要运行bundle update rails
来下拉上面提到的更新提交。我在使用Model.count的rails4中没有这样的错误。在您的示例中,奇怪的是它试图执行select count()而不是select count(*)。您是否尝试过User.all.count?结果:必须使用“users”中的SELECT count()PG::ErrorObjectType:ERROR:count(*)调用无参数聚合函数第1行:从“users”中选择count(),以及输出User.all?User.all的功能。结果=>选择“users”。*从“users”我将rails版本从4.0.0-stable更改为4.0.0,然后问题解决了。
User.count(:all)
gem "rails", github: "rails/rails", branch: "4-0-stable"