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

I am trying to add login-logout functionality to my rails app. For that I added bcrypt gem for password encryption and also access controller. Now when I run it locally, I get an error message. My app was running fine before adding the above functionality.

Error Message:

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'

I don't know what kind of type error I am getting. Any idea what might be going on?

Thanks, Chuchoo


Solution 1:

There is a problem with coffee-script-source 1.9.0 running on windows.

It seems you have to add this to your gemfile:

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

then do

bundle update coffee-script-source

Solution 2:

I was having this same issue and I fixed it by adding the following code to config\initializer\assets.rb

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

Solution 3:

Install node.js x86 version (Not x64 version even if have 64-bit computer) You can download it from https://nodejs.org/en/download/

All the other answers are not neccesary.

  • No need for "coffee-script-source" or "execjs"
  • No need to modify even execjs files
  • No need to add path for Node.js as x86 adds it automatically

After installing node.js, you need to restart the rails server AND the CMD shell where it is running, to update the path it will see.