Rails-4, ExecJS::ProgramError в Pages#welcome

Я пытаюсь добавить функциональность входа-выхода в мое приложение rails. Для этого я добавил bcrypt драгоценный камень для шифрования пароля, а также контроллер доступа. Теперь, когда я запускаю его локально, я получаю сообщение об ошибке. Мое приложение работало нормально перед добавлением вышеуказанной функциональности.

Сообщение об ошибке:

TypeError: Object doesn't support this property or method
(in C:/DevKit/lib/ruby/gems/1.9.1/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

Extracted source (around line #8):

<head>
  <title>PostApp</title>
  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track'=>true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track'=>true %>  ----> Line 8

      <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
      <%= csrf_meta_tags %>

Gemfile:

source 'http://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.4'
# Use sqlite3 as the database for Active Record
group :development do
  gem 'sqlite3' 
end
group :production do
  gem 'pg'
end
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

Я не знаю, какую ошибку я получаю. Есть идеи, что может происходить?

Спасибо чучо

7 ответов

Существует проблема с coffee-script-source 1.9.0, работающим в Windows.

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

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

тогда делай

bundle update coffee-script-source

У меня была такая же проблема, и я исправил ее, добавив следующий код в config\initializer\assets.rb

Rails.application.config.assets.precompile += %w( application.css )

Установите версию node.js x86 (не версию x64, даже если у вас 64-разрядный компьютер). Вы можете скачать ее с https://nodejs.org/en/download/

Все остальные ответы не являются необходимыми.

  • Нет необходимости в "coffee-script-source" или "execjs"
  • Нет необходимости изменять даже execjs файлы
  • Нет необходимости добавлять путь для Node.js, так как x86 добавляет его автоматически

После установки node.js необходимо перезапустить сервер rails и оболочку CMD, на которой он работает, чтобы обновить путь, который он увидит.

Просто прокомментировав эту строку в приведенном выше сегменте кода, я решил мою проблему.

<%=j avascript_include_tag 'application', 'data-turbolinks-track'=>true %> 

Не уверен, что это предпочтительное решение, но, безусловно, помогло мне продвинуться вперед.

Раскомментировать (app/assets/javascripts/application.js)

//=  require jquery
//=  require jquery_ujs
//=  require turbolinks
//=  require_tree .

@Chuchoo, комментируя <%=javascript_include_tag 'application', 'data-turbolinks-track'=>true %> решает проблему.

Для многих новичков, больше подробностей о том, как добраться до решения.

Перейдите в каталог приложения и откройте файл application.html.erb из your_app>app>views>layouts>application.html.erb и прокомментируйте JavaScript в строке 6.

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

Обновите свою страницу, и вы готовы к работе.

Перейдите в каталог своего приложения, а затем откройте файл application.html.erb в app/views/layouts и прокомментируйте эти две строки (5-ю и 6-ю) следующим образом:

 <!-- %= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> -->

обновите страницу, и ваша проблема решена!

Здравствуйте, у меня была такая же проблема, и вы можете сделать это: https://www.youtube.com/watch?v=N5i94L17KPo Теперь это работает для меня.

Другие вопросы по тегам