Hay varias maneras de extender una aplicación Rails y/o iniciar uno fuera. Usted ha mencionado solo uno de los cuatro grandes. Los otros son:
- plugins
- Motores
- Gems
- plantillas
Las plantillas son generalmente utilizados para iniciar una solicitud, pero si se diseña correctamente, puede utilizarlos para ampliar uno. Por ejemplo, muchas plantillas de stock ayudan a configurar un repositorio de código, instalar algunos plugins/gems y quizás arreglar un poco el diseño para que no tenga que hacerlo. Por supuesto, generalmente hará la mayoría de estos cuando empiece un proyecto. En nuestra empresa (3 desarrolladores) creé una plantilla que configura nuestros entornos de desarrollo y producción, repositorios, seguimiento de proyectos. Aquí está mi plantilla stock favorita: http://github.com/lhoeg/app_lego/network (El original no se ha hecho mucho trabajo en él desde hace tiempo, y creo que este es el mejor tenedor que hay ahora)
plugins y gemas son más o menos convirtiendo en sinónimo y no hay ya no hay razón para que las personas creen complementos, ya que las gemas son la forma más estándar de Ruby para la funcionalidad del paquete. En general, usará complementos para agregar bits de funcionalidad muy específica a su aplicación. Esto puede ir desde agregar autenticación de usuario, hasta calendarios, agregar ubicaciones y mapear a su aplicación. La mayoría de los complementos que he utilizado amplían ActiveRecord o la base de datos de la aplicación. Si el complemento viene con vistas, controladores o modifica las tablas de la base de datos, generalmente viene con un generador. Un buen ejemplo es el generador del complemento Restful Authentication. Una lista relativamente buena de http://agilewebdevelopment.com/
Los motores son los reyes de la modularidad. Por lo general, proporcionan mucha más funcionalidad que los complementos. Mientras que los plugins y las gemas en general extienden Rails, los motores tienen la intención de extender su aplicación agregando un conjunto completo de vistas, controladores y modelos. Por lo tanto, los motores son aplicaciones integrales de Rails que se empaquetan en una pequeña caja ordenada que puede colocar en su aplicación y agregar al instante una gran cantidad de funcionalidades. También hay un directorio Engines en http://agilewebdevelopment.com/ pero como verá, no hay muchos.
Espero que esto ayude!
Berns
Gracias Jeff .... Me había olvidado por completo de este sitio. – btelles