2010-06-11 15 views
5

Tengo una aplicación Rails 2.3 que me gustaría extraer en un complemento o motor. La aplicación tiene autenticación de usuario y capacidades cms básicas compatibles con el complemento ancestry.Extracción de una aplicación Rails en un complemento o motor

Quiero extraer la lógica de la aplicación en un plugin/engine para que pueda usar este código para futuros proyectos, con un "skin" o "theme" diferente si es necesario.

No estoy del todo seguro de que realmente entienda la diferencia entre el complemento y los conceptos del motor, por lo que sería un buen primer punto.

Cuál es el mejor enfoque, hay buenos puntos de partida, enlaces, explicaciones, ejemplos que debo seguir. Además, con el lanzamiento de R3 a considerar, ¿hay algo que debería ser consciente de para que, con respecto a los plugins, etc.

Voy a empezar por la observación de Ryan de http://railscasts.com/episodes/149-rails-engines pero obviamente eso es más de un año de edad ahora, entonces uno de los desafíos que me enfrento es encontrar la información más actualizada y relevante sobre este tema.

Todos los consejos y ayuda han sido recibidos.

Respuesta

4

En realidad, la conversión de una aplicación es bastante simple. Simplemente cree una carpeta de complementos, coloque una carpeta de aplicaciones dentro que contenga todas las carpetas de modelos y vistas-controladores, y eso es todo.

Sin embargo, usted tendrá que gestionar sus migraciones. También debe definir tareas de rake para copiar archivos a su carpeta pública. Creo que Railscasts todavía está bastante actualizado, si algo es ahora más fácil en Rails 2.3.

¡Buena suerte!

[EDITAR: para rails3] Los motores Rails 3 son muy limpios y potentes. Compruebe esto gist por Jose Valim.

+0

¿Funcionaría un motor Rails 2 en una aplicación Rails 3? ¿Sigue siendo el mismo proceso o ha cambiado desde que se publicó esta pregunta? – deb

+0

Un motor Rails 2 todavía funciona en rieles 3. Pero los motores Rails 3 tienen una integración mucho mejor, ahora es mucho más lo que se puede hacer. Por lo tanto, aún puede usar los motores Rails 2, pero realmente vale la pena convertirlos en motores Rails 3. Un motor Rails 2 es un plugin, un plugin Rails 3 muy probablemente será una joya: mucho más limpio :) – nathanvda

+0

@nathanvda: link –

1

Escribir un complemento es un proceso completamente diferente que escribir una aplicación, si ya tiene el código de su aplicación, debería convertirlo directamente en un complemento.

Considere que si utiliza complementos de terceros en su aplicación, podría ser bastante complicado.

3

Probablemente sea mejor que enfoque su motor en Rails 3, en lugar de tratar de hacerlo compatible con Rails 2 y Rails 3, debido a los cambios incompatibles hacia atrás. Aquí hay un más actualizado tutorial for Rails 3

También el libro "Crafting Rails applications" del miembro de Rails Core Jose Valim, tiene un buen capítulo sobre él. Int muestra cómo usar su herramienta EngineX que genera una estructura de motor Rails 3, por lo que puede crear motores más fácilmente para sus proyectos de Rails 3. Su gema devise es también un motor de rieles que también es agradable, porque puedes personalizarlo fácilmente copiando las plantillas en el directorio de la aplicación, y permitiéndote crear una subclase de los controladores que deseas personalizar más.

Cuestiones relacionadas