使用 Rails 资产时复制 jQuery 库
Duplicate jQuery library when using Rails Assets
我喜欢使用 Rails Assets:
在我的 Rails 应用程序中包含 bower、node 包
source 'https://rails-assets.org' do
gem 'rails-assets-colorbox'
end
# ...
gem 'jquery-rails'
现在,当我执行 运行 bundle install
时,我得到以下输出:
...
Using pg 0.18.1
Installing rails-assets-jquery 2.1.3
Installing rails-assets-colorbox 1.6.0
Using ruby-graphviz 1.0.9
...
现在我已经在使用 jquery-rails
插件,它显然是 jquery 的包装器,但我相信它也可以做更高级的 rails 相关的东西。
所以现在我的 Rails 应用程序中似乎有两个版本的 jquery,这并不理想。
我现在的问题是我是否可以去掉 jquery-rails
并在我的 Gemfile
中包含 rails-assets-jquery
如果您不使用 jquery-ujs,您可能根本不会使用 gem jquery-rails
。
jquery-ujs wires event handlers to eligible DOM elements to provide
enhanced functionality. In most cases, the eligible DOM elements are
identified by HTML5 data attributes.
例如,如果您有一个 HTML 表单,并且您想以 Ajax 方式(而不是页面加载)提交您的 HTML 表单,您需要必须在 form_for 中添加 :remote=>true 属性。您的控制器现在可以响应 ajax 请求,这可能是 HTML 嵌入。这将帮助您改善用户体验,同时保持客户端 js 轻便。
jquery-ujs 会触发您可以处理的事件,例如 ajax:success
ajax:error
.
如果您是 rails 的新手,请尝试完成此演练。
- https://robots.thoughtbot.com/a-tour-of-rails-jquery-ujs
- http://www.alfajango.com/blog/rails-3-remote-links-and-forms/
如果您只想使用 jQuery 而不想使用 jquery-ujs,您可能还希望使用 CDN 包含 jQuery。效率更高。
我喜欢使用 Rails Assets:
在我的 Rails 应用程序中包含 bower、node 包source 'https://rails-assets.org' do
gem 'rails-assets-colorbox'
end
# ...
gem 'jquery-rails'
现在,当我执行 运行 bundle install
时,我得到以下输出:
...
Using pg 0.18.1
Installing rails-assets-jquery 2.1.3
Installing rails-assets-colorbox 1.6.0
Using ruby-graphviz 1.0.9
...
现在我已经在使用 jquery-rails
插件,它显然是 jquery 的包装器,但我相信它也可以做更高级的 rails 相关的东西。
所以现在我的 Rails 应用程序中似乎有两个版本的 jquery,这并不理想。
我现在的问题是我是否可以去掉 jquery-rails
并在我的 Gemfile
rails-assets-jquery
如果您不使用 jquery-ujs,您可能根本不会使用 gem jquery-rails
。
jquery-ujs wires event handlers to eligible DOM elements to provide enhanced functionality. In most cases, the eligible DOM elements are identified by HTML5 data attributes.
例如,如果您有一个 HTML 表单,并且您想以 Ajax 方式(而不是页面加载)提交您的 HTML 表单,您需要必须在 form_for 中添加 :remote=>true 属性。您的控制器现在可以响应 ajax 请求,这可能是 HTML 嵌入。这将帮助您改善用户体验,同时保持客户端 js 轻便。
jquery-ujs 会触发您可以处理的事件,例如 ajax:success
ajax:error
.
如果您是 rails 的新手,请尝试完成此演练。
- https://robots.thoughtbot.com/a-tour-of-rails-jquery-ujs
- http://www.alfajango.com/blog/rails-3-remote-links-and-forms/
如果您只想使用 jQuery 而不想使用 jquery-ujs,您可能还希望使用 CDN 包含 jQuery。效率更高。