Forum: Ruby on Rails couldn't find file 'jquery' rails 3.1 stable mountable engine

Posted by Jorgen Nilsson (jrgen_n)
on 2011-09-01 21:02
When I create a new engine in Rails 3.1 stable and then access the dummy
app or the engine I get an error say that the app can't find jquery.

I've created the engine using
rails plugin new coffee --mountable

I've also created a basic controller in the engine and the dummy app. If
I remove the javascript include tag, everything works. But with the tag
there it just bails since it can't fine jQuery. The jquery-rails gem is
installed. I have jquery as a dependency in my
gemspec file. I've even added an Gemfile to the dummy app just to try,
but it gives the same error.


accessing the dummy app
----------------------------------------------------------

Sprockets::FileNotFound in Root#index
couldn't find file 'jquery'
 (in /Webapps/coffee/test/dummy/app/assets/javascripts/application.js:7)

Started GET "/" for 127.0.0.1 at 2011-09-01 20:31:01 +0200
 Processing by RootController#index as HTML
Rendered root/index.html.erb within layouts/application (8.9ms)
Completed 500 Internal Server Error in 89ms

ActionView::Template::Error (couldn't find file 'jquery'
 (in
/Webapps/coffee/test/dummy/app/assets/javascripts/application.js:7)):
   3: <head>
   4:   <title>Dummy</title>
   5:   <%= stylesheet_link_tag    "application" %>
   6:   <%= javascript_include_tag "application" %>
   7:   <%= csrf_meta_tags %>
   8: </head>
   9: <body>
 app/views/layouts/application.html.erb:6:in
`_app_views_layouts_application_html_erb___187280571548804820_2155822020'


accessing the engine
----------------------------------------------------------

Sprockets::FileNotFound in Coffee/pages#index
couldn't find file 'jquery'
 (in /Webapps/coffee/app/assets/javascripts/coffee/application.js:7)


Started GET "/coffee" for 127.0.0.1 at 2011-09-01 20:49:57 +0200
 Processing by Coffee::PagesController#index as HTML
Rendered /Webapps/coffee/app/views/coffee/pages/index.html.erb within
layouts/coffee/application (0.3ms)
Completed 500 Internal Server Error in 41ms

ActionView::Template::Error (couldn't find file 'jquery'
 (in
/Users/jorgen/Webapps/coffee/app/assets/javascripts/coffee/application.js:7)):
   3: <head>
   4:   <title>Coffee</title>
   5:   <%= stylesheet_link_tag    "coffee/application" %>
   6:   <%= javascript_include_tag "coffee/application" %>
   7:   <%= csrf_meta_tags %>
   8: </head>
   9: <body>
Posted by Kurtis Rainbolt-greene (krainboltgreene)
on 2011-09-02 04:04
(Received via mailing list)
Hey Jorgen,

This isn't a solution, but it may be better to simply remove the line
from your js file (Looks like #= require jquery) and use the Google
CDN version:

= javascript_include_tag
'//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js', :defer
=> true, :async => true

This will this be faster for your users (because Google has more
cloudspace than you, probably) and it also removes the need for
Sprockets to compress it.

I hope you find out what's going on. :/

Cheers

On Thu, Sep 1, 2011 at 12:02 PM, Jorgen Nilsson <lists@ruby-forum.com> 
wrote:
> gemspec file. I've even added an Gemfile to the dummy app just to try,
> Started GET "/" for 127.0.0.1 at 2011-09-01 20:31:01 +0200
>  6:  <%= javascript_include_tag "application" %>
> Sprockets::FileNotFound in Coffee/pages#index
> ActionView::Template::Error (couldn't find file 'jquery'
> --
> Posted via http://www.ruby-forum.com/.
>
> --
> You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscribe@googlegroups.com.
> For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>



--
Kurtis Rainbolt-Greene:
title: "Hacker, Designer, Author, & Father"
address: "718 Mill Street, Springfield, OR 97477"
phone: "(202) 643-2263"
Posted by Jorgen Nilsson (jrgen_n)
on 2011-09-02 08:46
Hi Kurtis,

Thanks for your answer. I was thinking the same thing and I'll just 
start developing without javascript all together since I don't need it 
in the initial phase.

I've also tried using and creating the engine with Rails 3.1.0rc5 and 
3.1.0rc8 and I get the same error. Surely I can't be alone with geting 
this error?

I think I'll post an issue on Github.
Posted by Kurtis Rainbolt-greene (krainboltgreene)
on 2011-09-02 09:29
(Received via mailing list)
At the very least it could be a good idea to include in the issue:
It'd be nice to know where Sprockets was looking for the file.

On Thu, Sep 1, 2011 at 11:46 PM, Jorgen Nilsson <lists@ruby-forum.com> 
wrote:
> I think I'll post an issue on Github.
>
--
Kurtis Rainbolt-Greene:
title: "Hacker, Designer, Author, & Father"
address: "718 Mill Street, Springfield, OR 97477"
phone: "(202) 643-2263"
Posted by Timothy W. (timothy_w53)
on 2011-09-02 20:12
I thought I would post here very quickly because I was having the same
problem and utilizing the google cloud resolved the issue.  Here is what
it looks like now.

// This is a manifest file that'll be compiled into including all the
files listed below.
// Add new JavaScript/Coffee code in separate files in this directory
and they'll automatically
// be included in the compiled file accessible from
http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll
appear at the bottom of the
// the compiled file.
//
//= javascript_include_tag
'//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js', :defer
=> true, :async => true
//= require jquery_ujs
//= require_tree .
Posted by tothemario (Guest)
on 2011-09-12 23:12
(Received via mailing list)
I had the same problem and finally fixed.
The solution is to explicitly require the 'jquery-rails' gem in the
dummy config/application.rb file, so Sprockets can add the jquery
assets in the assets.path.

In test/dummy/config/application.rb

    require File.expand_path('../boot', __FILE__)

    # Pick the frameworks you want:
    # require "active_record/railtie"
    require "action_controller/railtie"
    require "action_mailer/railtie"
    require "active_resource/railtie"
    require "rails/test_unit/railtie"
    require "sprockets/railtie"

    # Auto-require default libraries and those for the current Rails
environment.
    Bundler.require :default, Rails.env

    require "coffee"
    require "jquery-rails" # this should be auto-included with the
Bundler.require :default, Rails.env, but it's not happening

    module Dummy
      class Application < Rails::Application
          # ...
      end
    end


Same with other gems that have assets that should be auto-loaded by
Sprockets.
Hope this helps.

- Mario Izquierdo
Posted by Kris (Guest)
on 2011-09-19 09:24
(Received via mailing list)
The solution for me was to add jquery-rails to my engines Gemfile and
restart the server.

I would suspect that it does not want adding to the gemspec however,
however adding it as a development dependency might be okay.

-- Kris.
Posted by Santiago Pastorino (Guest)
on 2011-09-22 02:00
(Received via mailing list)
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.