2010-03-26 13 views
24

Estoy empezando a desarrollar una pequeña aplicación en Ruby on Rails y surgen muchas preguntas. Debo decir que tengo aproximadamente 1 año de experiencia con ASP.NET MVC y me siento como en casa con las vistas y los controladores de los modelos. He estado usando modelos de visualización de manera extensiva (con la ayuda de AutoMapper) y ahora me pregunto si los modelos de vista se usan de manera similar en el campo de carriles.¿Los modelos de vista se usan en los rieles?

De varios ejemplos (sobre todo de los rieles), he deducido que es común combinar datos de varios modelos directamente en su vista (lo cual está mal visto en ASP.NET MVC), o usar atributos virtuales en los modelos para obtener datos "perdidos".

Sé que el modelo comercial no se debe modelar después de las necesidades de la interfaz de usuario, por ejemplo, no debe haber una propiedad 'contraseña confirmada' en su modelo, esta debería ser una propiedad de modelo de vista.

Las propiedades virtuales de Rails parecen violar este principio.

¿Cómo se hace en los rieles?

Gracias.

+0

ASP .NET MVC tiene el concepto de modelos pseudo-múltiples en el sentido de que generalmente envuelven a muchos de ellos en un solo objeto que usted mismo escribe. – Kezzer

Respuesta

16

Si entiendo correctamente la noción de View Model, es un concepto que no es inmediatamente obvio en Rails, pero tampoco está prohibido/desaprobado o no permitido. No hay un requisito específico para un mapeo perfecto de uno a uno de los modelos a las tablas para que pueda trabajar libremente en el nivel de abstracción apropiado.

No creo que hacer referencia a varios modelos en una vista se considere particularmente malo (si es así, entonces tengo algunas áreas que necesitan un poco de reproceso) aunque actualizar varios modelos desde una sola vista puede ser un poco complicado.

De todos modos, en Rails creo que estamos hablando de lo que se conoce como el patrón "Presentador". Algunas referencias (Google "Patrón rieles Presentador" por más de lo que probablemente quiere o necesita):

Cuestiones relacionadas