Колин предлагает удалить строку // = require_tree. исправил проблему. Я потратил впустую более 2 дней, пытаясь следовать каждому предложению и исправить мою проблему. Я пытаюсь подписаться на

http://ruby.railstutorial.org http: //ruby.railstutorial.org книга на машине с windows и не может на всю жизнь преодолеть следующую неприятную ошибку.

ExecJS::RuntimeError in Static_pages#home

Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised:

["ok","(function() {nnnn}).call(this);n"]
(in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)
Extracted source (around line #6):

3: <head>
4:   <title><%= full_title(yield(:title)) %></title>
5:   <%= stylesheet_link_tag    "application", media: "all" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8:   <%= render 'layouts/shim' %>
9: </head>
Rails.root: C:/Users/.../bootcamp-sample-app

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'
Request

Я испробовал все предложения, включая установку nodejs с помощью msi, использование execjs 1.3.0 и другие вещи, которые я даже больше не могу вспомнить. Здесь находится gem-файл

source 'https://rubygems.org'

gem 'rails', '3.2.8'
gem 'bootstrap-sass', '2.0.0'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.10.0'
  gem 'guard-rspec', '0.5.5'
  gem 'guard-cucumber'
end

group :development do
  gem 'annotate', '2.5.0'
end


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'coffee-script'
  gem 'uglifier'
end

gem 'jquery-rails', '2.0.2'

gem 'execjs'

# Gems on Linus/Mac
#gem 'therubyracer'


group :test do
  gem 'capybara', '1.1.2'
  gem 'guard-spork', '0.3.2'
  gem 'spork', '0.9.0'
  gem 'factory_girl_rails', '1.4.0'
  gem 'cucumber-rails', '1.2.1', require: false
  gem 'database_cleaner', '0.7.0'


# Test gems on Linux
#  gem 'rb-inotify', '0.8.8'
#  gem 'libnotify', '0.5.9'

# Test gems on Macintosh OS X
#  gem 'selenium-webdriver', '~> 2.22.0'
#  gem 'rb-fsevent', '0.9.1', :require => false
#  gem 'growl', '1.0.3'

# Test gems on Windows
# gem 'rb-fchange', '0.0.5'
# gem 'rb-notifu', '0.0.4'
# gem 'win32console', '1.3.0'
end

group :production do
#  gem 'therubyracer'
  gem 'pg', '0.12.2'
end

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# To use Jbuilder templates for JSON
# gem 'jbuilder'

# Use unicorn as the app server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
#gem 'debugger''

, а здесь sessions.js.coffee

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
//= require bootstrap

application.html.erb

<!DOCTYPE html>
 <html>
 <head>
   <title><%= full_title(yield(:title)) %></title>
   <%= stylesheet_link_tag    "application", media: "all" %>
   <%= javascript_include_tag "application" %>
   <%= csrf_meta_tags %>
   <%= render 'layouts/shim' %>
 </head>
 <body>
 <%= render 'layouts/header' %>
 <div class="container">
   <%= yield %>
   <%= render 'layouts/footer' %>
 </div>
 </body>
 </html>

Вот Содержимое консоли

Processing by StaticPagesController#home as HTML
  Rendered static_pages/home.html.erb within layouts/application (45.0ms)
Completed 500 Internal Server Error in 1136ms

ActionView::Template::Error (["ok","(function() {nnnn}).call(this);n"]
  (in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee)):
    3: <head>
    4:   <title><%= full_title(yield(:title)) %></title>
    5:   <%= stylesheet_link_tag    "application", media: "all" %>
    6:   <%= javascript_include_tag "application" %>
    7:   <%= csrf_meta_tags %>
    8:   <%= render 'layouts/shim' %>
    9: </head>
  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___487732698_30422172'


  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms)
  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)
  Rendered C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (34.0ms)

Я установил Devkit и пробовал различные драгоценные камни, но, пожалуйста, предложите изменения, которые могут помочь мне развиваться на Windows Я использовал rubyinstaller для всего.

Чего мне не хватает?

Мой друг пытался обучить Rails на Win 8 RTM несколько месяцев назад и столкнулся с этой ошибкой. Не уверен, существует ли эта проблема и в Windows 7, но это может помочь.

Параметры:

1) Удаление //= require_tree . / Игнорирование проблемы — Как указывалось выше в ColinR, эта строка не должна вызывать проблему в первую очередь. Существует реальная проблема с ExecJS, работающим должным образом со средой выполнения JavaScript в вашей системе, и удаление этой строки просто игнорирует этот факт.

2) Установка Node.js / Запуск — Многие люди, похоже, просто заканчивают тем, что устанавливали Node.js и использовали его вместо среды выполнения JavaScript, уже установленной в их системе. Хотя это допустимый параметр, он также требует дополнительного программного обеспечения и позволяет избежать только первоначальной проблемы, заключающейся в том, что ExecJS не работает должным образом со средой выполнения JavaScript, уже установленной в вашей системе. Если предполагается, что существующая среда выполнения JavaScript в вашей системе работает, почему бы не заставить ее работать вместо установки большего количества программного обеспечения? По словам создателя ExecJS, среда выполнения, уже встроенная в Windows, фактически поддерживается …

ExecJS позволяет запускать код JavaScript из Ruby. Он автоматически выбирает лучшее время выполнения для оценки вашей программы JavaScript, а затем возвращает результат в виде объекта Ruby.

ExecJS поддерживает следующие среды выполнения:

  • therubyracer — Google V8, встроенный в Ruby
  • therubyrhino — Mozilla Rhino, встроенный в JRuby
  • для JavaScript на стороне сервера) или использует «Polyfill». Polyfill для этой функциональности, однако, тривиален, и, поскольку он делает код более легким для чтения, его стоит включить в Polyfill.
  • Apple JavaScriptCore — входит в Mac OS X
  • Хост Microsoft Script Host (JScript) { *} (с github.com/sstephenson/execjs‹**** Eventexecjs)

3) Фактическое решение проблемы / Обучение —

Исправление, которое сработало для нас: Используйте знания вариантов 1 и 2 для поиска других решений. Я не могу сказать вам, сколько веб-страниц, которые я закрыл, увидев варианты 1 или 2, было приемлемым решением, прежде чем мы на самом деле нашли информацию о корневой проблеме, которая у нас была. Единственная причина, по которой мы продолжали искать, заключалась в том, что мы не могли поверить, что команда Rails (1) вставит строку кода в каждый проект, сгенерированный скаффолдом, который вызвал проблему, или (2) потребует, чтобы мы установили дополнительное программное обеспечение только для запуска по умолчанию строка кода. И в итоге мы пришли к решению проблемы с корнем (ваши мили могут отличаться).

В системе, в которой возникли проблемы, найти ExecJS runtimes.rb . Сделайте копию найденного файла для резервного копирования. Откройте исходный файл runtimes.rb для редактирования. Найдите раздел, который начинается со строки Это дает дополнительное преимущество для задержки начальной загрузки, когда это имеет смысл. Например, когда вы извлекаете эти пользовательские данные в виде вызова AJAX после того, как пользователь заполняет форму. Просто вызовите th Экспортированная функция начальной загрузки с этими данными. this . В этом разделе в строке, содержащей JScript = ExternalRuntime.new( — удалить только :command => "cscript //E:jscript //Nologo //U",. Затем в строке, содержащей //U. Сохраните изменения в файле. Этот раздел файла теперь должен быть следующим: :encoding => 'UTF-16LE' # CScript with //U returns UTF-16LE — измените UTF-16LE на UTF-8 https://github.com/sstephenson/execjs/issues/81 # issuecomment-9892952

JScript = ExternalRuntime.new(
    :name        => "JScript",
    :command     => "cscript //E:jscript //Nologo",
    :runner_path => ExecJS.root   "/support/jscript_runner.js",
    :encoding    => 'UTF-8' # CScript with //U returns UTF-16LE
)

Затем остановите, затем перезапустите сервер Rails и обновите страницу в браузере, которая вызвала исходную ошибку. Надеюсь, теперь страница загружается без ошибок. Вот поток вопросов ExecJS, где мы первоначально разместили наши результаты: Если это не помогло устранить проблему, вы всегда можете перезаписать измененный runtimes.rb резервной копией, которую вы (надеюсь) сделали, и все вернется на круги своя. В этом случае рассмотрите вариант 3 и продолжайте поиск. Дайте нам знать, что в конечном итоге работает для вас … если только он не удаляет require_tree или не устанавливает node.js, этого уже достаточно. :)

Была та же проблема OS — Windows 8Error- ‘ExecJS :: RuntimeError …’ Решение — отсутствует Node.js

установить Node.js из

  1. http://www.nodejs.org/download / Перезагрузите компьютер
  2. У меня возникла эта проблема, и я искал Интернет. Я запускаю Windows 8 с этим файлом драгоценного камня rails

Пошел на

source 'https://rubygems.org'

gem 'rails', '3.2.9'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

group :development do gem 'sqlite3', '1.3.5' 
end

# Gems used only for assets and not required # in production environments by default. 

group :assets do 
    gem 'sass-rails', '3.2.5' 
    gem 'coffee-rails', '3.2.2'

gem 'uglifier', '1.2.3' 
end

gem 'jquery-rails', '2.0.2'

group :production do 
    gem 'pg', '0.12.2' 
end

http://nodejs.org/download/ установил — перезапустил машину и все заработало. Мне понравился маршрут

Learning . Кажется, проблема в том, что возвращает пустую строку в

IO.popen(command, options) { |f| output = f.read }

(строка 173 в версии 1.4.0). Вот почему сообщение об ошибке не содержит текста. Предложенные изменения не сработали для меня. Я изменил execjsexternal_runtine.rb, но он все равно вернул пустую строку. Я удалилUTF-16LEUTF-8, но это все еще возвратило пустую строку. Я удалил \U из ключевого слова command — это по крайней мере возвращенный текст, но он был в неправильной кодировке — в браузере он отображался как китайские символы.

Согласно этой записи блога MSDN , использование флага //U и перенаправление в файл приводит к тому, что cscript возвращает результат с помощью UTF-16 Глядя на вывод

, а затем, как ни странно, это сработало ( @ # % $ & amp ; ^ @ $ % !!!?!?!) используя command как "cscript //E:jscript //Nologo" и encoding как "UTF-8" Если вы используют Babel:

, мне пришлось добавить свои nodejs папку в моей переменной среды Windows Path. В Windows 8 откройте панель управления, перейдите в «Система», «Дополнительные параметры системы» (слева), нажмите «Переменные среды» слева и отредактируйте переменную «Путь», включив каталог в папку вашего nodejs (возможно, в «Program Files»).

Конечно, вы должны установить Node.js (используйте установщик Windows ) и установить CoffeeScript через NPM.

Я знаю, что это очень поздний ответ на этот вопрос, но я натолкнулся на что-то похожее и прошел полный путь, чтобы понять, что на самом деле стало причиной проблемы.

Оказалось, что стандартный движок windows jscript по-прежнему работает на es3, и многие гемы используют преимущества функций es5 или es6. К сожалению, если это происходит (вы используете гем или фрагмент кода, использующий функции es5 или es6) , нет никакого способа, чтобы это работало на Windows с родным движком js.

Это причина, по которой установка node.js решает проблему (по крайней мере, узел es5).

Надеюсь, что это может помочь некоторым людям, борющимся с ошибкой времени выполнения jsexec.

Мои 2 цента советуют установить узел (очень просто) или установить v8, а не удалять // = require_tree.

Примечание execjs будет автоматически использовать узел, если обнаружен. В противном случае вынудите его использовать, добавив в загрузку что-то вроде:

ENV['EXECJS_RUNTIME'] = 'Node'

Чтобы установить env в node.

Для пользователей Windows это может работать. Существует проблема с coffee-script-source & Gt ; 1.9.0, работающим в Windows.

Кажется, вам нужно добавить это в свой gemfile:

gem ‘coffee-script-source’, ‘1.8.0’

, а затем создайте

обновление пакета кофе-script-source

. Затем в своем вызове Ajax, пожалуйста, укажите Rails-4, ExecJS :: ProgramError в Pages # welcome и сделал несколько обновлений системных гемов и комплектных установок и обновлений.

Я отменил все свои испытания и снизил рейтинг источника сценариев кофе, и это работает. Публикация здесь, чтобы выручить любого, у кого может быть похожая проблема.

Обновление файлов в vendor / cache

coffee-script-source-1.8.0.gem Удаление устаревших файлов .gem из vendor / cachecoffee-script-source-1.9.1.1.gem Обновление пакета!

Для начинающих, таких как я:

  1. Перейдите в app views layouts application.html.erb
  2. Измените строку 6 из:

    ‘& Lt ; {** } = javascript_include_tag ‘application’, ‘data-turbolinks-track’ = & gt ; true % & gt ; ‘

в

<%= javascript_include_tag 'defaults', 'data-turbolinks-track' => true %>

источник из Учебное пособие для исправления здесь

Быстрое и грязное решение: remove //= require_tree . из application.js Глядя на вывод

Как я объясняю в комментариях к вопросу, на самом деле это не решает основную проблему, которая вызывает ошибку, а просто обходит ее.

Я использовал решение № 2, потому что раньше у меня была эта ошибка, но в этом случае она не работала, тогда я добавил

gem 'coffee-script-source', '1.8.0'

и запуск

bundle install

, и моя проблема была исправлена ​​

Вот менее сложное решение для начинающих:

Если вы только работаете в этом руководстве вы, вероятно, работаете с Gemfile по умолчанию (или почти). Вы можете открыть его в своем текстовом редакторе и удалить знак решетки в начале этой строки:

# gem 'therubyracer', :platforms => :ruby

Вам нужно будет повторно запустить bundle install, что, вероятно, приведет к загрузке нескольких вещей. Но как только это произойдет, вы сможете без проблем запустить сервер.

По крайней мере, это сработало для меня.

Кстати, это также работает в Ubuntu 12.04.

Запуск Win 8 64 bitrails 4.2.5ruby 2.1.7

Этот работал для меня

Изменили ли вы расположение своего кода с функции C: Users this-user yo-app ?

Когда я был молодым в рельсах, я создал app и расположение моего приложения по умолчанию: C: Users Duncan my-app , а затем, когда я изменил свое приложение и поместил его в папку D: All-my-Apps-у меня было эта ошибка ….

Я почесал голову, попробовал 1,2,3 и более ….. ничего! Пока я не вернул весь код в папку по умолчанию и, к моему изумлению, я снова катался :)

Использовать динамический регулярное выражение см. в моем обновленном коде: