0

我有以下 Ruby 代码:

<%= link_to "Install", install_game_path(game), :remote => true, :confirm => "Download local content for #{game.name}?", :title => "Install #{game.name}", :id => "game_#{game.id}_install_link" %>

这会产生如下所示的代码行: <a href="/games/install/3" data-confirm="Download local content for GAME 1?" data-remote="true" id="game_1_install_link" title="Install GAME 1">Install</a>

但是,在我的开发环境中,它会产生两个 Javascript 警报提示。我在 Firefox 中没有任何 Javascript/JQuery 错误。为什么这个对话框会出现两次(不管我是点击“确定”还是“取消”?

编辑

<%= javascript_include_tag "application" %>
<%= javascript_include_tag 'http://github.com/cowboy/jquery-dotimeout/raw/v1.0/jquery.ba-dotimeout.min.js' %>

生成此代码:

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/games.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery.ba-dotimeout.min.js?body=1" type="text/javascript"></script>
<script src="/assets/pages.js?body=1" type="text/javascript"></script>
<script src="/assets/servers.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="http://github.com/cowboy/jquery-dotimeout/raw/v1.0/jquery.ba-dotimeout.min.js" type="text/javascript"></script>

application.js 文件仅包含默认内容:

//= require jquery
//= require jquery_ujs
//= require_tree .
4

3 回答 3

1

看起来您不小心包含了两个 rails.js 副本。你能检查渲染页面的 HEAD 标签吗?此外,如果您使用的是 Rails 3.1 或更高版本,请检查 jquery.js 和 jquery_ujs 而不是 rails.js。你在某个地方调用 js 文件两次。

于 2013-05-01T19:28:17.327 回答
0

嗨@andy,这是因为您在开发中预编译了资产,因此请检查您的公共资产

它包含已经预编译的“application.js”文件夹,rails 开发将

自动选择已编译和单独的 js 文件。

Please remove public assets file in local if will fix your problem.


于 2013-05-02T16:56:33.177 回答
0

似乎“data-confirm”属性的 Rails 处理程序已分配两次。

您是否有机会添加了两次 javascript 标签 (javascript_include_tag)?

于 2013-05-01T19:24:58.107 回答