2010-08-16 13 views

risposta

6

La differenza fondamentale è che una gemma è qualcosa che deve essere installata sul sistema che esegue l'applicazione Rails, mentre un plug-in viene distribuito insieme all'applicazione. Più specificamente, i plug-in risiedono nel fornitore/plug-in, mentre le gemme devono essere installate utilizzando rake gem install gem_name.

Per quanto riguarda quando utilizzare ciascuna, le gemme tendono ad essere più facili da tenere aggiornate, ma più specificamente, alcune gemme utilizzano il codice C nativo e sono compilate specificamente per un determinato sistema operativo (come Nokogiri). Questi devono essere installati come gemme in quanto non funzioneranno quando vengono spostati su un altro sistema. Mentre alcune cose come act_as_commentable usano il ruby ​​code e possono essere spostate da un sistema all'altro.

0

Le gemme sono distribuite da rubygems, che è il gestore del pacchetto della libreria ruby ​​ufficiale. I plugin sono un modo (probabilmente hacky) per i plugin dei binari. Ti consiglio di utilizzare gemme quando possibile, a causa della risoluzione delle dipendenze. Rails3 ne ottimizza il riempimento con Bundler.

0

Io uso gemme ogni volta che una gemma funziona come volevo e plugins quando voglio fare una modifica personalizzata per un'applicazione specifica di rotaie e non influisce su tutto il mio sistema.

1

Da RailsGuides:

A rotaie plugin sia un'estensione o una modifica del quadro nucleo.

Da Rubygems.org:

Un gioiello è un'applicazione rubino confezionato o libreria.

Quindi, la più grande differenza tra i 2 è che i plugin Rails sono specificatamente realizzati per l'uso all'interno delle applicazioni Ruby on Rails, mentre le gemme no.

Ad esempio, diamo un'occhiata a Geokit.

La gemma (geokit-gem) fornisce le operazioni fondamentali basate sulla posizione.

Il plug-in Rails (geokit-rails) unisce i rilevatori di posizione in ActiveRecord.

Qui puoi vedere che la gemma fornisce il nucleo di Geokit. Questa gemma può essere utilizzata ovunque, non solo nell'app Rails. Il plugin fornisce funzionalità aggiuntive per coloro che utilizzano geokit all'interno di un'app Rails. In questo caso, l'utilizzo del plugin e della gemma è facoltativo.

1

Quando si installa un plug-in in un progetto può essere utilizzato solo nel rispettivo progetto. Ma se installi un gioiello, può essere usato da ogni progetto. Questa è la principale differenza dei plugin Gem &.

Problemi correlati