插件和寶石有什麼區別?每個的不同用途是什麼?你在哪裏以及爲什麼要使用另一個?插件和Ruby寶石的區別?
回答
寶石
- 寶石是使用由RubyGems定義的包裝系統的封裝紅寶石應用。
Rails本身就是一塊寶石。
Rails的寶石被安裝在JRuby的1.0 \ LIB \紅寶石\寶石\ 1.8 \寶石\軌-1.2.3爲:
DIR斌
DIR內置
68465 CHANGELOG
DIR CONFIGS
DIR調度
DIR DOC
DIR環境
307 fresh_rakefile
DIR助手
DIR HTML
DIR LIB
1072 MIT許可
11969 Rake文件
8,001自述
lib目錄包含了所有的寶石源代碼。我們可以安裝,升級和查詢寶石version.If一個使用工具,像我GemInstaller,人們可以很容易用一個簡單的配置文件自動RubyGems的安裝和加載。
- 爲Ruby解釋器安裝的Gem可以由該解釋器在系統範圍內使用。
- Gem可以作爲插件發佈。
- 也可以在供應商/寶石中出售。
插件
- 插件是Rails框架的延伸。
- 無法使用命令進行升級。要升級,必須卸載並安裝升級版本。
- 必須掛鉤入軌應用程序。 (必須有init.rb)
- 有一個install.rb文件。
- 插件無法發佈爲Gem。
- 只能在應用程序範圍內使用。
Goldspike插件安裝在供應商\插件\的應用程序的軌道集成目錄:
7089的build.xml
1141 LICENSE.TXT
DIR插件
6,675的pom.xml
1,447自述文件
DIR樣本
插件/ goldspike目錄由組成210 24 init.rb
25 install.rb
DIR LIB
549 Rake文件
536自述
DIR任務
DIR測試
lib目錄包含所有的插件的源代碼。
寶石VS插件
- Rails的有來自供應商/插件/目錄加載插件的方式。這很可能會被棄用,因爲Rails增加了對供應商/ gems /目錄中的項目 捆綁寶石的支持。 rspec的寶石版本是用於日常使用的寶石版本。除非您支持1.2.x系列或更早版本的Rails應用程序,否則應該使用這些應用程序。
- 由於您不包含實際應用程序中的庫,因此使用Gems檢入和檢出存儲庫通常會變得更快。 在分佈式團隊中,使用與涉及軟件版本不兼容有關的插件通常存在較少的問題。
- 一般的經驗法則是將Rails特有的功能作爲一個插件,同時將更多的通用Ruby庫製作成gem。
Gems安裝在系統級別,而插件安裝在應用程序級別。這意味着如果兩個或更多的應用程序在同一臺服務器上運行,他們可以共享寶石,但每個應用程序都有自己的插件。現在我會建議使用寶石,因爲隨着應用規模的擴大,它們更容易維護。
我不同意,因爲我們不應該安裝寶石系統,它可能污染和崩潰我的應用程序。除此之外,還會說明一種情況。如果一個VPS有很多應用程序,並且如果系統安裝的寶石會崩潰,會發生什麼情況,所以爲此我們應該爲每個應用程序創建Gemset。 [使用Gemset for Rails應用程序](http://everydayrails.com/2010/09/13/rvm-project-gemsets.html)。 – VKatz 2016-09-24 07:11:14
謝謝@Piyush。你能告訴我,使用插件和寶石。然後,爲什麼/我們在哪裏使用插件和寶石。請用實時概念解釋。 – 2011-04-02 04:55:52
hi @ user409617,現在每天都在使用所有插件。所以兩者幾乎相同。但我個人更喜歡插件,因爲我可以查看插件內的代碼,並確切知道發生了什麼。 (不是那種寶石不能,但它有點麻煩):D – sameera207 2011-04-02 05:14:48
@ sameera207我不同意,我相信絕大多數Rails應用程序現在使用的是寶石而不是插件。儘管如此,有些人確實會出售它們的寶石,或者通過Bundler將它們安裝在相對於該項目的路徑中。 – 2011-04-02 05:25:38