2011-02-23 14 views
5

Así que me gustaría compartir modelos entre dos aplicaciones Rails y no me gusta la solución de submódulos (me quemó en el pasado). Estoy pensando en usar joyas para resolver esto y tener esta trabajando básicamente:Compartir modelos entre aplicaciones Rails usando gems

  1. Crear una joya utilizando joyero (my_models)
  2. Crear una aplicación de rieles con algo en el Gemfile como: gem 'my_models', :path => '../my_models' para que pueda evitar envasado constantemente la gema, etc.
  3. uso de escopeta para volver a cargar constantemente todas las clases (de lo contrario no se puede editar archivos my_models sin necesidad de reiniciar el servidor/consola cada vez

Así que un par de preguntas:.

  1. Escopeta es lenta, ¿hay una mejor manera en Rails para volver a cargar solo esa gema cada vez?
  2. Si mis modelos my_models ActiveRecord tienen dependencias, los puse en my_models gems, ¿eso causará pesadillas de dependencia en mi aplicación habitual?
  3. ¿Qué más me echo de menos sobre por qué podría ser una mala idea?

Respuesta

0

Si utiliza un VCS con compatibilidad de submódulos (como Git) puede simplemente poner modelos en un repositorio diferente y convertirlo en un submódulo de sus aplicaciones Rails. Eso te daría un intercambio de código casi sin esfuerzo: Rails ni siquiera sabría que estás haciendo trampa.

+0

Creo que los submódulos son una mala idea ya que separa la estructura del repositorio de la estructura del código (por ejemplo, ¿qué haces con las pruebas, etc.?) – David

+0

Luego tirando del submódulo al vendedor y configurando enlaces simbólicos (con una tarea de Rake probablemente) de la estructura principal al submódulo podría ser una respuesta. Básicamente, eso sería como tener una gema separada, pero sin embalar gemas y recargar los gastos generales. –

Cuestiones relacionadas