代码之家  ›  专栏  ›  技术社区  ›  Voldy

警告:已初始化常量javascript_default_sources

  •  0
  • Voldy  · 技术社区  · 16 年前

    我用jrails插件从原型库切换到jquery。在那之后,我得到了警告:

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

    jrails.rb看起来:

    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'
    

    常量javascript默认源初始化else在哪里?如何修复此警告?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Voldy    16 年前

    在jrails.rb中,您应该删除(或注释)2行“default”,并且可以为jrails添加1行:

    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'
    

    在布局中替换 违约 显式使用jquery和jrails:

    = javascript_include_tag :jquery
    = javascript_include_tag :jrails
    

    作为优势,这种方法更具描述性。

        2
  •  0
  •   dave elkins    16 年前

    它看起来像actionview::helpers::assettaghelper::javascript的默认资源也设置在jrails插件的file/rails/in it.rb中。

    警告是否导致应用程序出现问题?

    如果你想摆脱它,你可以删除插件的/rails/in it.rb中的引用,或者放一个if-around来检查常量是否已经存在。

    我在看 http://github.com/aaronchi/jrails/blob/master/rails/init.rb 为了这个答案。

        3
  •  0
  •   j0k gauthamp    13 年前

    jrails的目的之一是通过jquery替换原型,这在Rails1.x和2.x中是默认的。因为这个原因 JAVASCRIPT_DEFAULT_SOURCES 被覆盖。这被Rails识别并导致警告。这是一个功能,而不是一个bug。

    这些天我正在修改Compass jQuery插件,从“w.i.p”到“released”。我会加上更多的助手。