4

有人见过这个数组错误吗?我有一个返回数组的辅助方法。在我的笔记本电脑的开发模式下,它以预期的格式返回数组:

var fire = 
[[1349083353000, 8.860000000000582], [1349085153000, 19.779999999999745],
[1349086953000, 20.289999999999964], [1349088753000, 29.850000000000364], 
[1349090553000, 3.7999999999992724]];

但是生产中的相同代码返回一个奇怪的数组格式:

var fire = 135175422800015.5135175602800020.0135175782800018.99135175962800012.33135176142800019.13135176322800029.55135176502800020.13135176682800077.34

我曾尝试在任一机器上检查 rails 控制台中的输出,并且生产输出相同的奇怪数组格式。我在生产中从 Rails 控制台中创建了一个新数组,它按预期工作以输出正确格式的数组。

有人见过这种奇葩的吗?

Rails version:3.2.8
Ruby Version:1.9.3p-125
4

1 回答 1

7

您可能正在 Ruby 1.9 上进行开发并在 Ruby 1.8 上进行部署。处理数组的默认行为是不同的。

在 Ruby 1.8array.to_s中相当于array.join('').

在 Ruby 1.9array.to_s中相当于array.inspect.

如果您希望两者都具有正确的行为,并且您正在使用 JavaScript,您可能希望将其呈现为 JSON,array.to_json而不是使用。

于 2012-11-30T08:40:17.733 回答