Fresh Rails 3.1安装失败...未初始化的常量JSON :: ParserError

时间:2011-09-19 05:40:01

标签: rvm ruby-on-rails-3.1 bundler

我正在使用RVM并多次安装rails 3.1.0但是一旦我开始使用它,我会一遍又一遍地得到同样的错误。

从全新安装的rails 3.1.0开始,我执行以下操作:

rails new fishapp

cd fishapp

bundle install

rails g scaffold Fish name:string

bundle exec rake db:migrate

但每次去http://localhost:3000/fish我都会得到:

Showing /Users/me/code/rails31/fishapp/app/views/layouts/application.html.erb where line #6 raised:

uninitialized constant JSON::ParserError
  (in /Users/me/code/rails31/fishapp/app/assets/javascripts/fish.js.coffee)

Extracted source (around line #6):

3: <head>
4:   <title>Fishapp</title>
5:   <%= stylesheet_link_tag    "application" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>
9: <body>

我肯定已经破坏了试图安装导轨的东西或其他东西,因为我不知道为什么它会失败的全新安装。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试执行其中一些操作以查看是否有帮助,

  • 检查您的Gemfile以确保您有gem coffee script
  • 检查您的Gemfile.lock文件以确保满足所有依赖项。您可能应该在activesupport下使用multi_json
  • 您还可以尝试在安装rails 3.1之前执行rvm get head并进行捆绑安装以查看是否有帮助。

答案 1 :(得分:0)

最初,我只是简单地注释了第6行(我只能继续工作)。

<%#= javascript_include_tag "application" %>

最终我需要javascript,所以我不得不回到这个问题。我把上面的一行记录下来,并在其下方硬编码了这一行:

<script src="/assets/application.js" type="text/javascript"></script>

页面加载正常,所以我查看了页面的来源,并查看了

http://0.0.0.0:3000/assets/application.js

...只是发现了类似的错误:

throw Error("NameError: uninitialized constant JSON::ParserError
(in /Users/me/Dev/fishapp/app/assets/javascripts/products.js.coffee)")

所以我决定加载一个rails控制台,看看我是否可以加载JSON gem,但是iconv出错:

ruby-1.9.2-p290 :001 > require 'json'
LoadError: no such file to load -- iconv

同时加载rails gem:

ruby-1.9.2-p290 :004 > require 'rails'
 => false 

所以我四处寻找并发现了这个:

http://beginrescueend.com/packages/iconv/

按照这些说明操作,您的问题将得到解决!为了记录,这些说明是:

rvm pkg install iconv
rvm remove 1.9.2
rvm install 1.9.2 --with-iconv-dir=$rvm_path/usr

我将离开我采取的步骤,以防其他人搜索Google的类似错误。