回答
基本的區別是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. 紅寶石和釀造配方有什麼區別?
- 8. 鏈輪 - 導軌和鏈輪寶石之間有什麼區別?
- 9. 退出和退出有什麼區別!在紅寶石?
- 10. 插件和庫有什麼區別?
- 11. PhoneGap插件和addJavascriptInterface有什麼區別?
- 12. 紅寶石中%Q和%{}的區別是什麼?
- 13. where'require'的外觀和'Gem.available?'的區別是什麼?尋找寶石?
- 14. 插座和襪子有什麼區別?
- 15. 管道和插座有什麼區別?
- 16. UIView插座和ChildViewController有什麼區別?
- 17. 什麼是最好的使用 - 紅寶石寶石或紅寶石插件
- 18. 'mandrill-api'寶石和'mandrill_mailer'寶石之間的區別
- 19. ..和...之間的區別紅寶石
- 20. Maven發佈和Maven組件插件有什麼區別?
- 21. Java中的模塊,插件和組件有什麼區別?
- 22. 有什麼區別`和$(Bash中有什麼區別?
- 23. ==和===有什麼區別?
- 24. ==和===有什麼區別?
- 25. 有什麼區別? :和||
- 26. ==和===有什麼區別?
- 27. '=='和'==='有什麼區別?
- 28. `&`和`ref`有什麼區別?
- 29. 有什麼區別:。!和:r!?
- 30. | 0和~~有什麼區別?