Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 带有资产管道的Rails 3.1,链接到:确认消息显示两次?_Jquery_Ruby On Rails_Ruby On Rails 3.1_Asset Pipeline_Sprockets - Fatal编程技术网

Jquery 带有资产管道的Rails 3.1,链接到:确认消息显示两次?

Jquery 带有资产管道的Rails 3.1,链接到:确认消息显示两次?,jquery,ruby-on-rails,ruby-on-rails-3.1,asset-pipeline,sprockets,Jquery,Ruby On Rails,Ruby On Rails 3.1,Asset Pipeline,Sprockets,好的,我已经看到这个问题是由jQuery或Prototype的多个链接引起的,但是我可以确认我在整个页面上只链接到jQuery一次。我的问题是:当我有一个到的链接确认删除时,弹出窗口显示两次。以下是我的模板中的适用代码(用Slim编写): 我正在运行Rails 3.1.0,资产管道打开,在Gemfile中运行gem'jquery Rails',下面是我的application.js文件(由资产管道的链轮编译) 在我的/vendor/assets/javascripts/目录中有underline

好的,我已经看到这个问题是由jQuery或Prototype的多个链接引起的,但是我可以确认我在整个页面上只链接到jQuery一次。我的问题是:当我有一个到的链接确认删除时,弹出窗口显示两次。以下是我的模板中的适用代码(用Slim编写):

我正在运行Rails 3.1.0,资产管道打开,在
Gemfile
中运行
gem'jquery Rails'
,下面是我的
application.js
文件(由资产管道的链轮编译)

在我的
/vendor/assets/javascripts/
目录中有
underline.js
backbone.js
,链轮似乎可以找到这些。我还搜索了sprockets提供的
application.js
文件,jQuery只在其中一次,jQuery-UJS只在其中一次。这就是我的页面呈现时头部的样子(我省略了显示的
csrf标记
值,FWIW)


管理
subdata.js
中有一些特定于主干网的代码;没有选择再次包含jQuery的内容。那怎么办?我的项目中没有其他jQuery文件;它都是通过
jqueryrails
gem来管理的。是什么导致我的
:确认
方法触发两次


编辑:我以前在Rails 3.1的RC5上看到过这个,但现在我也在Rails 3.1上看到了它。

可能您有Rails.js文件。请将其删除,然后重试。它必须起作用


这件事也发生在我身上。从application.js中删除“//=require_tree.”修复了它。

在application.js中提及jquery和jquery_ujs的名称,如果仍然没有解决,则使用压缩版本的jquery和jquery_ujs


将gem'jqueryrails'添加到您的gem文件中,然后进行尝试

之所以发生这种情况,是因为我在开发环境中运行了
rake-assets:precompile
,导致创建了
public/assets/application.js
。这使得对
/assets/application.js
的请求由包含
public/assets/application.js
中的所有
/require
脚本的静态文件提供服务,从而再次加载这些脚本

在开发模式下,
将扩展到多个
标记,一个用于
//require
行所需的每个文件,另一个用于仅包含其自身内容的
application.js


解决方案是手动删除整个
public/assets
目录,或者使用
assets:clean
rake任务。这将导致脚本文件再次被动态提供。

我的项目中没有
rails.js
文件;不在
app/assets/javascripts
中,不在
public/javascripts
中,不在任何地方。也没有对任何
rails.js
文件的引用或断开的链接。我使用的是rails 3.0.10,在安装jquery rails gem并运行其生成器之后发生了这种情况。Rails.js还没有被删除,并且删除了我的修复版本。现在是我接受这个答案的时候了——这对我来说最有效。还要注意,运行
bundle exec-rake-assets:clean
将用于删除
public/assets
目录。大部分这一切都是因为我仍然没有以资产管道所希望的最小摩擦的方式编写和存储我的样式表。这就是我尝试与众不同的原因,我想…谢谢。不知道
资产:干净
,很高兴知道。Seams要做,但是Seams更正确。
jqueryrails
gem已经在我的gem文件中(如我的问题中所述)。删除
jquery
&
jquery\u ujs
完全删除了所有Rails/jquery视图行为。这可能会对您造成影响,因为您正在两次包含同一个文件,一次是通过javascript\u include\u标记手动,另一次是通过application.js手动。首先确认如果是这种情况,您必须将其包含一次。
link_to('Destroy', depot_path(@depot.id), :confirm => "Really?", :method => :delete)
//= require jquery
//= require jquery_ujs
//= require 'underscore'
//= require 'backbone' 
<head>
  <meta content="text/html; charset=utf-8" http-equiv="content-type">
  <title>Administration</title>
  <link href="/assets/screen.css" media="screen" rel="stylesheet" type="text/css" />
  <script src="/assets/application.js" type="text/javascript"></script>
  <meta content="authenticity_token" name="csrf-param" />
  <meta content="--token--omitted--" name="csrf-token" />
  <script src="/assets/common/subdata.js" type="text/javascript"></script>
  <link href="/assets/show.css" media="screen" rel="stylesheet" type="text/css" />
</head>