10

我正在使用 Rails 3.2.14 没有问题...

我最近重命名application.jsapplication.js.coffee,现在收到 JSON 错误。

JSON::GeneratorError

only generation of JSON objects or arrays allowed
  (in /.../app/assets/javascripts/application.js.coffee)

即使我删除了所有内容,application.js.coffee我仍然会收到错误消息。

当我尝试直接查看它(http://localhost:3000/assets/application.js)时,同样的问题:

throw Error("JSON::GeneratorError: only generation of JSON objects or arrays allowed\n  (in /.../app/assets/javascripts/application.js.coffee)")

我已经梳理了我的应用程序是否存在任何潜在问题,但一切看起来都很标准。

4

2 回答 2

6

我有一个类似的问题(Rails 4 资产管道抛出“只允许生成 JSON 对象或数组”),这与 application.js 无关。multi_json gem 从 1.7.8 更新到 1.7.9,并破坏了我的应用程序。对 cofeescript 文件的任何更改都会导致此“仅允许生成 JSON 对象或数组”错误。

我明确地将 multi_json gem 放入我的 Gemfile 中,固定为 1.7.8 版。为我解决了这个问题。

于 2013-08-23T11:21:08.587 回答
5

我的保存问题不是在 Rails 项目中,而是在使用 sprockets 的 ruby​​ 项目中。我还没有最终确定问题,但它似乎与 execjs 和使用的 Javascript 运行时有关。

您可以尝试添加

gem 'therubyracer'

到您的 Gemfile。这安装了 v8 引擎,为我解决了这个问题。

于 2013-08-23T13:26:42.733 回答