Сбой установки Fresh Rails 3.1 неинициализированная константа JSON :: ParserError

Я использую RVM и несколько раз устанавливал rails 3.1.0, но как только я начинаю его использовать, я снова и снова получаю одну и ту же ошибку.

Из новой установки рельсов 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>

Должно быть, я что-то сломал, пытаясь установить рельсы или что-то в этом роде, иначе я не понимаю, почему это не удастся при новой установке. Любые идеи?


person Oscar    schedule 19.09.2011    source источник


Ответы (2)


Сначала я просто закомментировал строку № 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, но получил ошибку с iconv:

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

Тем временем загрузка драгоценного камня рельсов произвела:

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 похожие ошибки.

person user664833    schedule 05.10.2011
comment

Вы можете попробовать сделать некоторые из них, чтобы увидеть, поможет ли это,

  • Проверьте свой Gemfile, чтобы убедиться, что у вас есть gem coffee script.
  • Проверьте свой файл Gemfile.lock, чтобы убедиться, что все ваши зависимости удовлетворены. Вы, вероятно, должны иметь multi_json под активной поддержкой.
  • Вы также можете попробовать выполнить rvm get head перед установкой rails 3.1 и выполнить установку пакета, чтобы посмотреть, поможет ли это.
person jake    schedule 27.09.2011