警告:已初始化常量JAVASCRIPT_DEFAULT_SOURCES

时间:2010-01-08 15:29:14

标签: jquery ruby-on-rails jrails

我用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_DEFAULT_SOURCES在哪里初始化其他?我该如何修复此警告?

3 个答案:

答案 0 :(得分:1)

在jrails.rb中你应该用“默认”删除(或评论)2行,你可以为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

有利的是,这种方法更具描述性。

答案 1 :(得分:0)

看起来ActionView :: Helpers :: AssetTagHelper :: JAVASCRIPT_DEFAULT_SOURCES也在文件/rails/init.rb的jrails插件中设置。

警告是否会导致您的申请出现问题?

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

我正在寻找http://github.com/aaronchi/jrails/blob/master/rails/init.rb这个答案。

答案 2 :(得分:0)

jrails的目的之一是通过jQuery替换Rails 1.x和2.x中默认的prototype。因此,JAVASCRIPT_DEFAULT_SOURCES被覆盖。这被铁轨识别并导致警告。这是一个特色,而不是一个BUG。

这些天我正在重新使用compass-jquery-plugin来从'W.I.P'到'release'。我将添加更多AssetTagHelpers。