为什么使用gem来提供资产而不是供应商文件?

时间:2015-01-13 20:12:53

标签: ruby-on-rails ruby

我对Rails相对较新,我有一个关于从gem提供资产与仅将文件加载到资产管道中的问题。

据我所知,他们做的事情几乎相同,因为他们都会在清单中调用资产管道中的文件。

gem 'jquery-rails'
这样的内容作为gem而不是仅仅将
/vendor/assets/javascripts/jQuery.js
放入供应商资产并以这种方式加载它有什么好处?

4 个答案:

答案 0 :(得分:4)

优点是您不必将文件添加到您的仓库并管理更新,您更新宝石并且您已更新了依赖项。他们还可以添加助手以更轻松地使用资产。

并非所有的JS / CSS项目都与资产管道开箱即用兼容,因此有时候宝石也可以为您完成这项工作。

仅仅因为文件被提供给客户端并没有使它与应用程序中的任何其他依赖项有很大的不同。

答案 1 :(得分:1)

gem包含用于Rails的不显眼的javascript以及jQuery本身。它还允许您在测试中使用assert_select_jquery

答案 2 :(得分:0)

好处:

  1. 当您获得新版本时,您不需要手动复制它们 jquery发布,gem将确保仅添加最新代码。

  2. 检查此链接:  https://github.com/rails/jquery-rails/blob/master/lib/jquery/assert_select.rb#LC48  它提供了几种在测试代码时有用的方法。

答案 3 :(得分:0)

jquery-rails是gem包含jquery.js,jquery_ujs.js的js文件。如果你不包含jquery-rails,那么你同时包含了jquery.js和jquery_ujs.js.If你没有使用jquery-rails的gem,你已经手动跟踪jquery.us用于jquery_ujs.js的版本。目前,这些依赖关系管理由gem'jquery-rails'负责。