24

This might seem a repeated question but none of the solutions seem to work for me. I have gem jquery-rails in my Gemfile. Also, the lines

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

And this is my Gemfile:

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.1'

# Use SCSS for stylesheets
#gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
#gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/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'

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

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'
  # Use mysql as the database for Active Record
  gem 'mysql2'
  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

My application.html.erb :

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <%= stylesheet_link_tag 'application', media: 'all' %>
  <%= javascript_include_tag 'application' %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

I cannot start my Rails application. I do not understand what is the issue. My ruby version is 2.1.6 Please help.

Rubyrider
  • 3,567
  • 1
  • 28
  • 34
Souvik Das
  • 335
  • 1
  • 4
  • 14
  • 1
    Did you run bundle install? – max Jun 28 '15 at 18:24
  • yes I have tried bundle install and restarting the server. I don't understand what's wrong. – Souvik Das Jun 28 '15 at 18:34
  • Rails should be loading the javascript files from the gem. Try running `bundle exec rails s` to ensure you are using the correct gems. – max Jun 28 '15 at 18:39
  • 1
    I got it. This was a platform issue. Needed to change `<%= javascript_include_tag 'application' %>` to `<%= javascript_include_tag 'default' %>` – Souvik Das Jun 28 '15 at 19:01
  • You can answer your own question. – max Jun 28 '15 at 22:52
  • I was pretty surprised to find out that when I used the line as said above, it tried to load a file default.js which obviously does not exist. How can I load application.js which has `//=require jquery` and `//=require jquery.ujs` ? – Souvik Das Jun 29 '15 at 02:35
  • `javascript_include_tag 'application'` but I'm really perplexed why you would get the jquery error in the first place – max Jun 29 '15 at 02:41
  • me too. I tried working it around by manually puting the jquery.js in the asset/javascript folder. But I do not seem to find jquery_ujs for dowloading – Souvik Das Jun 29 '15 at 02:43
  • You could find it in the [jquery-rails gem](https://github.com/rails/jquery-rails/tree/master/vendor/assets/javascripts) but if its a brand new app I would try starting from scratch. Delete the folder and run `rails new appname` because it seems like something is messed up with your asset pipeline. – max Jun 29 '15 at 04:02
  • I tried that too. Whatever app I start has the same error. `javascript_include_tag 'application'` simply gives me the error – Souvik Das Jun 29 '15 at 06:13
  • Thats really strange, what version of rails? `rails -v` – max Jun 29 '15 at 06:16
  • I found out the issue. I think a JavaScript runtime is missing. I ended up installing node.js on a fedora machine, and then it worked. If I uncomment the gem therubyracer, that's supposed to work in Windows platform right? – Souvik Das Jun 29 '15 at 06:33
  • As my Gemfile states I am using Rails 4.2.1 but when I do rails -v it also shows 4.0.0. That maybe cause I tried to run a different project which was in rails 4.0.0 – Souvik Das Jun 29 '15 at 06:34
  • 2
    Using Fedora 20 currently. uninstalling nodejs and uncommenting therubyracer gem from Gemfile does the trick. Only if the error message was a bit more clear. – Souvik Das Jun 29 '15 at 06:39

7 Answers7

35

I am following RoR 4. I came across the same error couldn't find file 'jquery' with type 'application/javascript'. I did the following and was successful in running my app

  • gem 'jquery-rails' and gem 'turbolinks'
  • bundle update
  • bundle install
novice_dev
  • 702
  • 1
  • 7
  • 22
24

This occurs often times because the Gemfile lacks the gems needed for the jquery dependencies to resolve themselves.

In Rails 5.x, add this to the Gemfile:

gem 'jquery-rails', '~> 4.3', '>= 4.3.3'
gem 'rails-ujs', '~> 0.1.0'

After this, run bundle Install.

Restart the server for it to update the latest changes and voila, it works!

Fluffy Ribbit
  • 316
  • 1
  • 4
  • 15
s Narayanaswamy
  • 283
  • 2
  • 6
1

This is caused because of default javascript runtimes that are already available in Windows but has some compatibility issues. The most easy workaround is to install nodejs from http://nodejs.org/download/ and then restart your PC. This solves all the issues.

For more details about the issue, please refer to this page : ExecJS::RuntimeError on Windows trying to follow rubytutorial

Community
  • 1
  • 1
Souvik Das
  • 335
  • 1
  • 4
  • 14
1

In your controller file you can not tell rails not to use a layout by writing

layout false

Directly under your controller class on the second line

class ExampleController < ApplicationController
layout false
Gabe
  • 19
  • 3
1

This issue can be fixed by the following steps bellow.

  1. Make sure that the require jquery statement is there in application.js

    //= require jquery

    //= require jquery_ujs

  2. Make sure that all the required gems are present in the Gemfile, if it is not present add it and execute bundle install command.

    gem 'jquery-rails', '~> 4.3', '>= 4.3.3'

    gem 'rails-ujs', '~> 0.1.0'3.'

  3. If it is still showing the error update your node by runnig

    sudo npm update npm -g

Finally refresh your application.

dBz
  • 49
  • 8
-1

Go to gemfile and make sure that gem jquery-rails is uncommented. Run bundle install. That should do it.

Wilson
  • 71
  • 4
-1

You simply need to add gem 'jquery-rails' in Gemfile and run bundle install. It worked for me.

Adittya Verma
  • 270
  • 1
  • 11