Joh*_*ash 9 ruby-on-rails ruby-on-rails-4
两者之间有什么区别吗?
User.count
Run Code Online (Sandbox Code Playgroud)
和
User.count(:all)
Run Code Online (Sandbox Code Playgroud)
我将rails升级到4.0然后当我使用ModelName.count(:all)它运行良好但如果我使用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"
Run Code Online (Sandbox Code Playgroud)
我也遇到了这个问题。此提交中引入了更改。像一条线
User.count
Run Code Online (Sandbox Code Playgroud)
现在会抛出一个ActiveRecord::StatementInvalid错误,因为它会SELECT COUNT() FROM users在 Postgres 上生成。截至本次提交,修复是将您的代码更新为
User.count(:all)
Run Code Online (Sandbox Code Playgroud)
此提交恢复先前存在的功能,:all用作传递给 ARel 的“列”,从而导致有效的 SQL 查询SELECT COUNT(*) FROM users。
我Gemfile最初有以下内容(如评论中所述)
gem "rails", github: "rails/rails", branch: "4-0-stable"
Run Code Online (Sandbox Code Playgroud)
但我需要运行bundle update rails以拉下上面提到的较新的提交。
我想他们之间没有区别
http://apidock.com/rails/ActiveRecord/Calculations/count http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-count
通过不传递任何参数来计数,它将返回模型所有行的计数。
| 归档时间: |
|
| 查看次数: |
2464 次 |
| 最近记录: |