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 Теперь это работает для меня.