回答
基本的区别是gem是需要在运行Rails应用程序的系统上安装的东西,而插件则与您的应用程序一起部署。更具体地说,插件生活在供应商/插件,而宝石需要使用rake gem install gem_name进行安装。
至于何时使用它们,宝石往往更容易保持最新,但更具体地说,一些宝石使用原生C代码并专门针对给定的操作系统(如Nokogiri)进行编译。这些需要安装成宝石,因为它们在移动到另一个系统时不起作用。而像acts_as_commentable这样的东西使用直接的ruby代码,并且可以从系统移动到系统。
宝石是由rubygems发布的,rubygems是官方的ruby库包管理器。插件是一个rails插件(可能是hacky)的方式。由于依赖关系的解决,我建议你尽可能使用宝石。 Rails3与Bundler捆绑在一起。
当我想为特定的rails应用程序进行自定义更改并且不会影响我的所有系统时,每当gem按我想要的方式工作时使用gem和插件。
甲Rails插件或者是一个扩展或核心框架的变形例。
甲宝石是封装Ruby应用程序或库。
因此,2之间最大的区别在于Rails插件专门用于Ruby on Rails应用程序,而宝石则不是。
例如,我们来看看Geokit。
宝石(geokit-gem)提供了基本的基于位置的操作。
Rails插件(geokit-rails)将位置查找器混合到ActiveRecord中。
在这里您可以看到gem提供了Geokit的核心。这个宝石可以在任何地方使用,而不仅仅是一个Rails应用程序。该插件为那些在Rails应用程序中使用geokit的用户提供了额外的功能。在这种情况下,使用插件以及宝石是可选的。
当您在项目中安装插件时,它只能在相应的项目中使用。但是如果你安装了宝石,它可以被每个项目使用。这是Gem &插件的主要区别。
- 1. 宝石和插件有什么区别?
- 2. 硒和硒宝石有什么区别?
- 3. 插件和Ruby宝石的区别?
- 4. 什么是“json的”宝石和‘json_pure’宝石的区别?
- 5. 耙路轨之间有什么区别:冻结:宝石和耙宝石:解压?
- 6. “排序”和“排序!”有什么区别?方法在红宝石?
- 7. 'aws-s3'和'雾'宝石之间有什么区别?
- 8. 设计宝石:config.remember_for和config.timeout_in有什么区别?
- 9. 本地和远程宝石有什么区别?
- 10. 退出和退出有什么区别!在红宝石?
- 11. 链轮 - 导轨和链轮宝石之间有什么区别?
- 12. 红宝石和酿造配方有什么区别?
- 13. 插件和库有什么区别?
- 14. PhoneGap插件和addJavascriptInterface有什么区别?
- 15. 红宝石:区别&=和&& =
- 16. 什么是红宝石的区别发送和红宝石public_send方法?
- 17. 什么区别,红宝石HTTParty和角$ HTTP
- 18. where'require'的外观和'Gem.available?'的区别是什么?寻找宝石?
- 19. 红宝石中%Q和%{}的区别是什么?
- 20. Rails 3:引擎与宝石有什么区别?
- 21. 插座和袜子有什么区别?
- 22. 管道和插座有什么区别?
- 23. UIView插座和ChildViewController有什么区别?
- 24. 'mandrill-api'宝石和'mandrill_mailer'宝石之间的区别
- 25. ..和...之间的区别红宝石
- 26. Maven发布和Maven组件插件有什么区别?
- 27. Java中的模块,插件和组件有什么区别?
- 28. 有什么区别`和$(Bash中有什么区别?
- 29. 宝石没有什么
- 30. 有什么区别? :和||