2010-08-16 12 views

Respuesta

6

La diferencia básica es que una gema es algo que debe instalarse en el sistema que ejecuta su aplicación Rails, mientras que se implementa un complemento junto con su aplicación. Más específicamente, los complementos viven en proveedores/complementos, mientras que las gemas deben instalarse utilizando la instalación de gema rastrillo nombre_gruta.

En cuanto a cuándo usar cada una, las gemas tienden a ser más fáciles de mantener actualizadas, pero más específicamente, algunas gemas usan código C nativo y se compilan específicamente para un sistema operativo dado (como Nokogiri). Deben instalarse como gemas, ya que no funcionarán cuando se muevan a otro sistema. Mientras que algunas cosas como act_com_commentable usan código de rubí directo y se pueden mover de un sistema a otro.

0

Las gemas se distribuyen por rubygems, que es el administrador oficial del paquete de la biblioteca ruby. Plugins es una forma (probablemente hacky) para los complementos de rieles. Te recomiendo que uses gemas siempre que sea posible, debido a la resolución de la dependencia. Rails3 ecurages que al empacar con Bundler.

0

Uso las gemas cada vez que una gema funciona como yo quería y los complementos cuando quiero hacer un cambio personalizado para una aplicación de rieles específica y no afecta a todo mi sistema.

1

De RailsGuides:

A Rails plugin es ya sea una extensión o una modificación del marco básico.

De Rubygems.org:

Una joya es una aplicación empaquetada Rubí o biblioteca.

Por lo tanto, la mayor diferencia entre los 2 es que los complementos de Rails están hechos específicamente para su uso dentro de las aplicaciones de Ruby on Rails, mientras que las gemas no lo son.

Por ejemplo, veamos Geokit.

La gema (geokit-gema) proporciona las operaciones fundamentales basadas en la ubicación.

El complemento Rails (geokit-rails) mezcla los buscadores de ubicación en ActiveRecord.

Aquí puede ver que la gema proporciona el núcleo de Geokit. Esta gema se puede usar en cualquier lugar, no solo en una aplicación de Rails. El complemento proporciona funciones adicionales para aquellos que están usando geokit dentro de una aplicación de Rails. En este caso, usar el complemento y la gema es opcional.

1

Cuando instala un complemento en un proyecto, solo se puede usar en el proyecto respectivo. Pero si instalas una gema, puede ser utilizada por cada proyecto. Esta es la principal diferencia de Gem & Plugins.

Cuestiones relacionadas