2010-02-25 34 views
1

當我部署到不同的機器時,我正面臨着軌道寶石的一些問題。它需要一些額外的工作安裝寶石。其中最適合的軌道項目。插件或寶石。 對於一些寶石沒有找到相應的插件。寶石或插件,什麼是對軌道項目的紅寶石好

我在尋找使用插件而不是寶石的優點,反之亦然。

+0

可能的重複[在Ruby on Rails中,安裝東西作爲寶石還是作爲插件有什麼區別?](http://stackoverflow.com/questions/3629919/in-ruby-on-rails-whats-該差 - 安裝 - 東西 - 作爲一種寶石或間) – 2010-11-08 11:23:06

回答

1

如果項目被凍結到項目中,我通常會使用插件,這意味着項目部署時沒有問題。你可以將寶石凍結到一個項目中,但如果它們需要本地構建,它會導致更多的麻煩,而不是我的經驗值得的。

我的理解是寶石比插件更容易升級。

您還應該查看用於處理這些部署問題的rails 3 bundler。

3

可以解壓寶石Rails應用程序,這將確保它們與您的應用程序一起部署:

rake gems:unpack:dependencies 

現在你再也不用部署到服務器上安裝的寶石。這已經處理了大部分的部署問題。大多數其他人通過Bundler解決,這將包括在Rails 3中。

如果可以,請使用gems over plugins。寶石通常更易於管理,因爲它們的版本優於插件。對於公共的Rails擴展,我沒有理由使用插件而不是gem,但有些作者只提供其中的一個。在這種情況下,你別無選擇。

1

對我來說,插件是首選。我遇到了很多情況,我將有一個不正確的配置environment.rb和寶石不會有版本分配給他們。然後,服務器管理員做了:

sudo gem update 

現在我的RSpec的測試將無法運行,因爲更新安裝的測試單元1.2.2和我的具體設置需要1.0.1(或東西)。