couldn't find file 'jquery' rails 3.1 stable mountable engine

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

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. :confused:

Cheers

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.

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.

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 .

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

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.

Fixed here https://github.com/rails/rails/commit/007f56701102647088673d92b165c3d862fbba22

tothemario wrote in post #1021529:

    # 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

This solved my problem, I gotta login to thank you!