ruby-on-rails - 在 Ruby on Rails 中,将某些东西安装为 gem 或插件有什么区别?

标签 ruby-on-rails rubygems ruby-on-rails-plugins

关于 http://github.com/collectiveidea/delayed_job

它说:

To install as a gem, add the following to config/environment.rb:
config.gem 'delayed_job'
Run rake gems:install

对比

To install as a plugin:
script/plugin install git://github.com/collectiveidea/delayed_job.git

将其安装为 gem 或插件有什么区别?

此外,第一种方法只安装 gem 2.0.3,这可能是 tobi 的版本? (rake gems:install 通过gem list -r delayed_job 安装版本) 是http://github.com/tobi/delayed_job ? “插件”方式具体说是collectiveidea版本?安装哪一个并不重要?

最佳答案

Gem 和 vendored 插件都指的是 collectiveidea 的分支。事实上,collectiveidea 是 RubyGems 上 delayed_job Gem 的当前维护者。

也就是说,一般来说,将插件安装为 Gem 有很多优点。

  • 您可以安装一次并在许多不同的项目中使用它
  • 您可以利用依赖项解析
  • 你可以升级只是改变版本号
  • 您不需要将整个插件代码存储在您的 SCM 中

那么,为什么可以“作为插件”安装插件? 有很多不同的答案。

一开始,Rails 插件是作为简单的库出现的。随着时间的推移,开发人员开始注意到将插件打包为 Gem 的优势。

此外,在 Rails 3 之前,一些插件功能只保留给插件而不保留给 Gems。例如,在 Rails 3 之前,插件可以捆绑 rake 任务,而没有办法将新的 rake 任务或新路由注入(inject)主应用程序。

在过去的两年中,大部分 Rails 插件都提供了作为插件或作为 Gem 安装的能力。随着 Rails 3 和 Bundler 的到来,我确信插件将被弃用,取而代之的是 Gems。

关于ruby-on-rails - 在 Ruby on Rails 中,将某些东西安装为 gem 或插件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3629919/

相关文章:

ruby-on-rails - (rails) 脚本/插件安装 - 这是什么意思?

ruby-on-rails - 使用带有远程 git repo 的 capistrano 进行部署,但没有在生产服务器上运行 git

ruby-on-rails - 如何使用 minitest 测试 ssl 是否强制执行?

ruby-on-rails - 为什么我在将我的应用程序推送到 Heroku 时收到错误 500 "We' 抱歉,但出了点问题?

ruby-on-rails - 在 UI 中查看 CanCanCan 能力

ruby-on-rails - 如何检查 current_user 是否通过 omniauth 登录?

ruby - 在 Ruby 1.9.3 中安装 debugger-linecache 时出错

ruby - 在任何来源中都找不到 ffi

ruby-on-rails - 安装 rails 插件时出现警告

Jquery UI Accordion 和 JQuery Grid 插件不能很好地结合在一起