Search code examples
jqueryruby-on-railsjrails

Warning: already initialized constant JAVASCRIPT_DEFAULT_SOURCES


I switched from prototype library to jquery with jrails plugin. After that I've got the warning:

jrails.rb:17: warning: already initialized constant JAVASCRIPT_DEFAULT_SOURCES

jrails.rb looks like:

ActionView::Helpers::PrototypeHelper::JQUERY_VAR = 'jQuery'
ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = ['jquery.min', 'jquery-ui.min', 'jrails.min']
ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
ActionView::Helpers::AssetTagHelper.register_javascript_expansion :jquery => ['jquery.min', 'jquery-ui.min']

require 'jquery/jrails'

Where is constant JAVASCRIPT_DEFAULT_SOURCES initialize else? How can I fix this warning?


Solution

  • In jrails.rb you should remove (or comment) 2 lines with "default" and you can add 1 line for jrails:

    ActionView::Helpers::PrototypeHelper::JQUERY_VAR = 'jQuery'
    #ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = ['jquery.min', 'jquery-ui.min', 'jrails.min']
    #ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
    ActionView::Helpers::AssetTagHelper.register_javascript_expansion :jquery => ['jquery.min', 'jquery-ui.min']
    ActionView::Helpers::AssetTagHelper.register_javascript_expansion :jrails => ['jrails.min']
    
    require 'jquery/jrails'
    

    In layouts replace default explicitly with jquery and jrails:

    = javascript_include_tag :jquery
    = javascript_include_tag :jrails
    

    As advantageous this approach is even more descriptive.