Pregunta

Desde el principio, Rails ha tenido problemas con los modelos con espacios de nombre. A medida que pasaba el tiempo, casi todos dejaron de usarlo. Yo incluido.

Con Rails 2.3, me gustaría una actualización sobre la situación. Las preguntas específicas que tengo en mente son:

  • En primer lugar, ¿es bueno ir?
  • nombre de la tabla, ¿qué regla seguir?
  • asociaciones, ¿cómo declararlas con la menor verbosidad? ¿Cómo nombrar columnas de clave externa?
  • requisitos automáticos, ¿funciona si coloca los archivos de modelo en un subdirector que coincida con el espacio de nombres? o, ¿cómo nombrar y dónde colocar los archivos?
  • generación, ¿el generador de modelos maneja los espacios de nombres con éxito y correctamente?
  • generación, ¿qué hay del generador de andamios, que incluye controladores?
  • ¿Alguna de las incompatibilidades / peculiaridades de las que uno debería estar enterado?
¿Fue útil?

Solución

La mejor reseña que he visto sobre el tema es de Estrictamente desatado . Que yo sepa, 2.3 no ha resuelto ningún problema, lo que significa que todavía no son confiables.

Otros consejos

Recientemente tuvimos un gran debate sobre esto dentro de nuestra empresa. Creo que al final del día, pensamos que si no puede nombrar tablas de espacio dentro de una base de datos, no tiene sentido ubicar los modelos en espacios de nombre. Nos decidimos por el prefijo de nuestros modelos (User, UserAddress, UserEmailAddresses) y ponerlos en el directorio de usuarios, luego de usar:

config.load_paths << "#{RAILS_ROOT}/app/models/users"

para cargar los modelos. Para controlar la verbosidad en nuestros modelos, hacemos esto con frecuencia:

has_many :addresses, :class_name => "UserAddress"

Al generar, lo creamos como si no hubiera espacio de nombres (script / genera modelo UserAddress) y luego lo copiamos manualmente en el directorio de usuarios.

Encogerse de hombros. Supongo que al final, todo esto realmente te da una estructura de directorio más limpia, lo que en realidad es más problemático para un usuario de VIM como yo, pero agradable para TextMaters.

Todavía me mantendría alejado de ello. Cualquier cosa ganada (lo cual no estoy seguro de lo que sería honestamente) definitivamente se perdería si consideras la molestia y la pérdida de brevedad y claridad en tu código.

Mi última aplicación tiene 87 recursos e incluye funciones administrativas en todo el lugar. No veo la necesidad de espacios de nombre, en mi humilde opinión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top