2009-08-07 16 views

risposta

12

config.gem dovrebbe causare la gemma automaticamente richiesta. Non dovresti aver bisogno di fare una chiamata 'require' manuale.

config.gem

  1. Indica Rails per caricare questo gioiello automaticamente
  2. Indica a Rails che questo gioiello è necessario per l'applicazione, in modo che le gemme rake: installazione verrà installarlo
  3. L': opzione source può dire ai binari di ottenerlo da un repository non standard
  4. L'opzione: lib può dire ai binari di caricare un file non standard dalla gemma (cioè qualcosa che non ha il nome della gemma stessa)
+0

Inoltre,:.. versione specifica la versione (come si farebbe in un Gemfile) – labyrinth

4

Se sono corretto, durante l'inizializzazione dell'ambiente "config.gem" consente all'app di configurare e richiedere le dipendenze GEM dall'app, senza la necessità di doverle installare manualmente. (Come abbiamo fatto prima) Chiamando "config.gem tzinfo" come hai fatto sopra, richiede automaticamente la gemma attraverso l'app. Questo ti aiuta quando ti schieri su un server esterno e hai bisogno di preparare l'app insieme alle gemme necessarie, ecc. Puoi quindi eseguire RAKE GEMS: INSTALL e rail apriranno tutte le tue gem e ne richiederanno.

Una cosa da notare però è che se non si desidera che una gemma sia richiesta attraverso la vostra app. Quindi aggiungere ": lib => false" dopo config.gem i.e (config.gem 'tzinfo': lib => false).

In alcuni casi, (ho seguito il tuo link) se stai ottenendo un gioiello non inizializzato e l'hai installato manualmente. Assicurati che la directory config.gem ": lib" corrisponda alla directory lib corretta della gem. I.E una gemma può essere impacchettata e installata come "nlewis-supergem", tuttavia potrei dover puntare la lib a "supergem". vale a dire "config.gem" nlewis-supergem ": lib =>" supergem ".Tutto dipende da come alcune persone impacchettano il loro gioiello e le librerie corrispondenti

Un consiglio rapido è invece di installare manualmente installare sempre la gemma tramite "config.gem" e quindi rastrello GEMS: INSTALL per catturare eventuali errori strani prima della distribuzione

Spero che questo aiuti

+0

Grazie per ': lib => false' :) Lavorare su applicazioni legacy è un dolore! – atmaish

+0

Impressionante! Spiegazione – Abhiram