Неуспешно инсталиране на Fresh Rails 3.1 неинициализирана константа JSON::ParserError

Използвам 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>

Трябва да съм счупил нещо, опитвайки се да инсталирам релси или нещо подобно, тъй като иначе не разбирам защо би се провалило при нова инсталация. Някакви идеи?


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 gem, но получих грешка с 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