activerecord sum返回一个字符串?

pin*_*ngu 5 activerecord ruby-on-rails

这对我来说似乎很奇怪,有效记录总和会返回字符串,而不是数字

basket_items.sum("price")
Run Code Online (Sandbox Code Playgroud)

这似乎使它起作用,但是我认为我可能错过了一些东西,因为这似乎很奇怪。

basket_items.sum("price").to_i
Run Code Online (Sandbox Code Playgroud)

Ser*_*pov 2

https://github.com/rails/rails/pull/7439

它返回一个字符串是有原因的——在 Ruby 1.8 中调用 Fixnum 上的 to_d 会给出 NoMethodError。Ruby 1.9 中不再出现这种情况,因此可能可以进行更改。