使用Rails资产时重复的jQuery库

时间:2015-03-26 08:55:48

标签: jquery ruby-on-rails ruby ruby-on-rails-4 asset-pipeline

我喜欢使用Rails Assets在我的Rails应用中包含bower,节点包:

source 'https://rails-assets.org' do
  gem 'rails-assets-colorbox'
end

# ...

gem 'jquery-rails'

现在当我运行bundle install时,我得到了以下输出:

  

...
  使用pg 0.18.1
  安装rails-assets-jquery 2.1.3
  安装rails-assets-colorbox 1.6.0
  使用ruby-graphviz 1.0.9
  ...

现在我已经在使用jquery-rails插件,这显然是jquery的包装器,但我相信它也可以使用更高级的与rails相关的东西。

所以现在我的Rails应用程序中似乎有两个版本的jquery,这并不理想。

我现在的问题是,我是否可以摆脱jquery-rails并在rails-assets-jquery

中加入Gemfile

1 个答案:

答案 0 :(得分:1)

如果您没有使用jquery-ujs,则可能根本不使用gem jquery-rails

  

jquery-ujs将事件处理程序连接到符合条件的DOM元素提供   增强功能。在大多数情况下,符合条件的DOM元素是   由HTML5数据属性标识。

例如,如果您有一个HTML表单,并且想要以Ajax方式(而不是页面加载)提交HTML表单,则必须在form_for中添加:remote => true属性。 。您的控制器现在可以响应ajax请求,这可能是HTML嵌入。这将有助于您改善用户体验,同时仍然保持客户端js。

jquery-ujs将触发您可以处理的事件,例如ajax:success ajax:error

如果您不熟悉rails,请尝试进行此操作。

  1. https://robots.thoughtbot.com/a-tour-of-rails-jquery-ujs
  2. http://www.alfajango.com/blog/rails-3-remote-links-and-forms/
  3. 如果您只想使用jQuery但不想使用jquery-ujs,您可能还希望使用CDN包含jQuery。它更有效率。