Rails jQuery被调用两次

时间:2013-01-06 16:57:47

标签: javascript jquery ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我正在开发一个Rails 3.2应用程序,但不知怎的,我的javascript代码被执行了两次,我不知道为什么。

我已经搜索了application.js文件,它只包含在我的资源文件夹中,而不是在我的公共文件夹中。我只有每个js文件的一个副本,所以它可能不应该归因于资产管道。

这是我的application.js文件。

//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require jquery.ui.all
//= require myownjs
//= require_tree .

我实际上做了一个几乎没有jquery嵌套形式的类似项目,问题不存在所以我的直觉告诉我,这可能是由于我使用的宝石反复调用我的代码或者由于我的javascript顺序包括但我不熟悉网络编程,我不确定这是否真的有意义。但是,我确实尝试删除嵌套表单的需要行,它没有什么区别。

有人可以通过建议错误来帮助我吗?

这是另一个项目的application.js.

//= require jquery
//= require jquery_ujs
//= require jquery.ui.all
//= require myowncodes

//= require_tree .

2 个答案:

答案 0 :(得分:4)

//= require_tree .已包含.目录中的所有内容 - 这将是您的application.js文件所在的目录(typicaly / app / assets / javascripts /)。我的猜测是,您列出的许多其他文件已经在该目录中,并且可以从application.js文件中删除这些条目。

或者,如果要特别列出应加载的文件,请从application.js文件中删除//= require_tree .

答案 1 :(得分:2)

//= require_tree .

此行将加载application.js文件文件夹中的所有文件。要完全控制正在加载的文件,您可以删除上面的行并加载单个所需的文件,或者您可以创建子文件夹并使用

//= require_directory <sub_directory_name>

这将加载该文件夹中的所有文件。此方法仅加载您指定的文件。我建议不要使用require_tree,以便更好地控制您在应用程序中加载的文件。

在您的情况下,删除require_tree行应该可以解决您的问题。 我希望它有所帮助!!