2009-03-02 4 views
17

Desde el principio, Rails ha tenido problemas con los modelos de espacio de nombres. A medida que pasaba el tiempo, prácticamente todos dejaron de usarlo. Yo mismo incluido.Modelos espaciados por nombre en Rieles: ¿Cuál es el estado de la unión?

Con Rails 2.3 fuera, quisiera recibir una actualización de la situación. Las preguntas más específicas que tengo en mente son:

  • Primero, ¿es bueno ir?
  • naming de tabla, ¿qué regla seguir?
  • asociaciones, ¿cómo declararlas con la menor verborrea? cómo nombrar las columnas de clave externa?
  • solicitud automática, ¿funciona si coloca los archivos del 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 correctamente y correctamente?
  • generación, ¿qué tal el generador de andamios, que incluye controladores?
  • incompatibilidades/peculiaridades que uno debe tener en cuenta?
+0

Me doy cuenta de que soy muy perezoso al hacer esta pregunta, ya que pude investigar rápidamente la mayoría de las respuestas, pero estoy aquí con la esperanza de que alguien ya haya sufrido mucho y quiera compartirla. – kch

+0

Creo que es una buena pregunta. Tengo muchas ganas de ver lo que viene, ya que soy otro que lo quería, lo probé, sentí el dolor y me di por vencido. –

+1

Esta pregunta ya es bastante antigua. Tengo curiosidad de cómo han mejorado las cosas ahora que Rails 4.0 está fuera. – Andrew

Respuesta

14

La mejor descripción que he visto sobre el tema es Strictly Untyped. Que yo sepa 2.3 no ha resuelto ningún problema, lo que significa que todavía no son confiables.

+0

cualquier cosa con lolcats en el título debe ser buena. comprobará. – kch

+0

El enlace está roto ahora. ¿Sería capaz de proporcionar una actualización a esta respuesta ahora que Rails 4 está fuera? – Andrew

3

Recientemente tuvimos un gran debate al respecto dentro de nuestra empresa. Creo que, al final del día, pensamos que si no se pueden crear tablas de espacio de nombres dentro de una base de datos, no tiene sentido el espacio de nombres de los modelos. Nos instalamos en anteponiendo nuestros modelos (Usuario, UserAddress, UserEmailAddresses) y ponerlas en el directorio de usuarios, y luego usando:

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

para cargar los modelos. Para controlar el nivel de detalle en nuestros modelos, lo hacemos con frecuencia:

has_many :addresses, :class_name => "UserAddress" 

Al generar, creamos como si no hubiera un espacio de nombres (script/generar el modelo UserAddress) a continuación, copiar manualmente al directorio de usuario.

Shrug. Supongo que al final todo lo que esto realmente le da es una estructura de directorios más limpia, que en realidad es más problemas para un usuario de VIM como yo, pero agradable para TextMaters.

+0

Bueno, realmente, como un TextMater debo decirle que cmd + T para ir a los archivos, rara vez uso el buscador de archivos. De todos modos, eso es moderadamente útil, pero ¿estás diciendo que has probado el espaciado de nombres en Rails 2.3 y que sigue siendo SOL? – kch

+0

Uso algo similar a cmd + T en VIM, y lo bueno de poner cosas en carpetas es que puedes hacer "m/u /" y cmd + T probablemente se reducirá a modelos/usuarios /, lo cual es muy útil (la mayoría de los usuarios de cmd + t no se dan cuenta de que las barras acortan la lista por directorio) – efalcao

+0

En respuesta al resto de su pregunta, no lo intentamos en 2.3. Además, no he visto nada en los 2.3 cambios que especifican específicamente los modelos de espacios con "luces verdes". – efalcao

-2

Aún así me mantendría alejado de él. Todo lo ganado (que no estoy seguro de lo que sería sinceramente) se perderá definitivamente cuando consideres 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 nombres, en mi humilde opinión.

+0

Bueno, algunas personas trabajan mejor con espacios de nombres, algunas no les importa. Siempre puedes encontrar formas de evitarlo, demonios, muchos idiomas no tienen ninguno. A pesar de las necesidades/alternativas, es una pregunta que sería bueno tener una respuesta. – kch

+2

Esta es una declaración general miope. Las razones convincentes para los espacios de nombres no son menos sobre la cantidad de modelos que su paridad. – gtd

+0

Espere hasta que su aplicación se expanda e intente que los nuevos desarrolladores aprendan rápidamente cómo funciona su aplicación y trate de hacer este argumento. – jwg2s

Cuestiones relacionadas