2010-03-18 36 views
4

我正在嘗試使用acts_as_audited插件。我應該將它安裝爲gem(放在environment.rb中)還是插件?在rails中我應該安裝爲gem還是插件

一個優於另一個的優點是什麼。稍後,我打算將此應用程序放在客戶服務器上以進行永久託管。所以我最好把它當成寶石?如果它是一個寶石...當我把應用程序放在客戶端服務器上。我不必再次獲取這個插件?

回答

0

據我瞭解,這兩種行爲完全不同:

  • 插件僅適用於你的應用,因此,如果你想凍結它在你的應用程序,並希望簡化。交付,使用插件。
  • 爲整個紅寶石安裝安裝了寶石。所以最好在應用程序之間共享一個gem。但是,您必須記住,在交付時,您必須在客戶端計算機上另外安裝gem。

所以在你的情況下,我寧願使用插件,而不是寶石。

+1

寶石可以很容易地凍結到'供應商/寶石'。 – 2010-03-29 14:50:35

1

一般而言,gem是爲您的應用添加功能的更強大和支持的方式。 Web上有整個基礎架構,並內置於Rails中,以處理那些不在其中的插件的寶石。

例如,如果您使用寶石,您將獲得用於處理寶石的整套Rake任務。

在你的項目的根,運行...

$ rake -T gem 

(in /Users/username/project/someproject) 
rake gems      # List the gems that this rails application depends on 
rake gems:build    # Build any native extensions for unpacked gems 
rake gems:build:force   # Force the build of all gems 
rake gems:install    # Installs all required gems. 
rake gems:refresh_specs  # Regenerate gem specifications in correct format. 
rake gems:unpack    # Unpacks all required gems into vendor/gems. 
rake gems:unpack:dependencies # Unpacks all required gems and their dependencies into vendor/gems. 
rake rails:freeze:gems   # Lock this application to the current gems (by unpacking them into vendor/rails) 

你也可以指定你的environment.rb文件的gem依賴。這使您能夠自動將它們與...

$ rake gems install 

安裝了插件寶石的另一個優點的能力是在系統級你有gem工具維護寶石這樣就使得事情變得更加容易。

,如果它是作爲寶石......當我把 應用程序在客戶端上server..will我不 不得不再次獲得這個插件?

您可以將寶石「凍結」到您的應用程序中,並將它們作爲應用程序的一部分部署,而無需在系統上安裝它們。如果你這樣做,你不必再次獲得寶石或插件,除非你想升級到更新的版本。

0

您可能會發現調試插件與創業板更容易。如果在您的IDE中需要搜索應用程序樹中的代碼,那也很好。

我發現很高興安裝插件進行開發,並在代碼發佈後轉換到gems。

+1

使用捆綁器可以非常容易地調試寶石。只需輸入'$ bundle open gem_name'打開它 – fphilipe 2010-12-29 17:47:33

相關問題