Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 警告:已初始化常量JAVASCRIPT\u默认\u源_Jquery_Ruby On Rails_Jrails - Fatal编程技术网

Jquery 警告:已初始化常量JAVASCRIPT\u默认\u源

Jquery 警告:已初始化常量JAVASCRIPT\u默认\u源,jquery,ruby-on-rails,jrails,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_SOUR

我使用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\u DEFAULT\u源在哪里?如何修复此警告?

看起来好像/rails/init.rb文件中的jrails插件中也设置了ActionView::Helpers::AssetTagHelper::JAVASCRIPT\u DEFAULT\u源代码

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

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


我正在寻找这个答案。

在jrails.rb中,您应该删除(或注释)带有“default”的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

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

jrails的目的之一是通过jQuery替换prototype,prototype在Rails 1.x和2.x中是默认的。因此,
JAVASCRIPT\u DEFAULT\u SOURCES
被覆盖。rails可以识别这一点并发出警告。这是一个特性,而不是一个BUG


这些天我在重新设计compass jquery插件,从“W.I.p”变成“发布”。我将添加更多Assettaghelper。

此警告不会在应用程序中引起问题,但在运行Mongrel或script/generate时会出现此警告。我不喜欢警告。实际上,我使用了src/jrails/config/initializers/jrails.rb中的这个声明,但在我看来,它只是源代码。我已经试着注释了我的app/config/initializers/jrails.rb中除了一个之外的所有JAVASCRIPT_DEFAULT_源声明。没有什么变化。如果我在我的_app/config/initializers/jrails.rb中对它进行注释,javascript default不会重置.Dave,实际上我几乎按照您的建议将其删除。谢谢