Rails3: jquery-rails gem sets 'config.action_view.javascript_expansions' but cannot be overriden in 'config/application.rb'

Hello,

I’ve created a new Rails3 app and I’m using jQuery instead of prototype.

Gemfile:

gem ‘jquery-rails’

in my config/application.rb I want do the following:

config/application.rb

if Rails.env.production?

config.action_view.javascript_expansions[:defaults] = %w(jquery.min rails application)

else

config.action_view.javascript_expansions[:defaults] = %w(jquery rails application)

end

So in production I want to include jquery.min whereas in development I want the unminified (jquery).

But this seems not to work and when I look at the jquery-rails railtie, I see the following code:

module Jquery

module Rails

class Railtie < ::Rails::Railtie

config.before_initialize do

if ::Rails.root.join("public/javascripts/jquery-ui.min.js").exist?

config.action_view.javascript_expansions[:defaults] = %w(jquery.min jquery-ui.min rails)

else

config.action_view.javascript_expansions[:defaults] = %w(jquery.min rails)

end

end

end

end

end

This sets the config.action_view.javascript_expansions[:defaults] to always use jquery.min.  So it seems to me that the code from my app (config/application.rb) isn't applied. Although this should be possible to do.

Is this expected behavior? Shouldn't it be possible to override the expansions in your own application?

TIA 

C+++

you don’t actually need the “jquery-rails” gem. you might have to report to the gem’s author about this. : )

so, basically, you should be fine once you remove the “jquery-rails” gem from your Gemfile.

True but I was wondering why it didn’t work.

In the jquery-rails (which is actually a railtie) there is the code:

config.before_initialize do …

end

So this could mean that during initialisation (in your config/application.rb) you could easily change this yourself but as it is now, it doesn’t work.

So I was wondering whether this is expected behavior or not.

C+++

http://www.railsdispatch.com/posts/how-rails-3-enables-more-choices-part-1

check out the article. it actually explains the flow how gem gets loaded with hooks. maybe you should try “before_configuration” instead.