2010-08-16 48 views

回答

6

基本的区别是gem是需要在运行Rails应用程序的系统上安装的东西,而插件则与您的应用程序一起部署。更具体地说,插件生活在供应商/插件,而宝石需要使用rake gem install gem_name进行安装。

至于何时使用它们,宝石往往更容易保持最新,但更具体地说,一些宝石使用原生C代码并专门针对给定的操作系统(如Nokogiri)进行编译。这些需要安装成宝石,因为它们在移动到另一个系统时不起作用。而像acts_as_commentable这样的东西使用直接的ruby代码,并且可以从系统移动到系统。

0

宝石是由rubygems发布的,rubygems是官方的ruby库包管理器。插件是一个rails插件(可能是hacky)的方式。由于依赖关系的解决,我建议你尽可能使用宝石。 Rails3与Bundler捆绑在一起。

0

当我想为特定的rails应用程序进行自定义更改并且不会影响我的所有系统时,每当gem按我想要的方式工作时使用gem和插件。

1

RailsGuides

甲Rails插件或者是一个扩展或核心框架的变形例。

Rubygems.org

甲宝石是封装Ruby应用程序或库。

因此,2之间最大的区别在于Rails插件专门用于Ruby on Rails应用程序,而宝石则不是。

例如,我们来看看Geokit

宝石(geokit-gem)提供了基本的基于位置的操作。

Rails插件(geokit-rails)将位置查找器混合到ActiveRecord中。

在这里您可以看到gem提供了Geokit的核心。这个宝石可以在任何地方使用,而不仅仅是一个Rails应用程序。该插件为那些在Rails应用程序中使用geokit的用户提供了额外的功能。在这种情况下,使用插件以及宝石是可选的。

1

当您在项目中安装插件时,它只能在相应的项目中使用。但是如果你安装了宝石,它可以被每个项目使用。这是Gem &插件的主要区别。

相关问题