2008-10-06 25 views
8

Estoy aprendiendo Ruby on Rails. He leído algunos libros, he visto muchos Railscasts, he visto algunos ejemplos.Diseñando sitios web con Ruby on Rails

Sin embargo, cuando estoy trabajando en mi primer proyecto serio con Rails, me he obsesionado sobre cómo implementar correctamente algunas características básicas del sitio web que la mayoría de los tutoriales que he visto carecen.

Por ejemplo: Menús de navegación. Muchos tutoriales sobre cómo hacer uno estático, pero ¿qué pasa con la dinámica? Si quiero hacer una barra de navegación diferente en las páginas, ¿cómo haré para eso?

Creo que la mejor manera de aprender cosas como esta es ver el código de ejemplo. ¿Hay algún buen sitio de fuentes abiertas en RoR? ¿Algún código de ejemplo que pueda verificar?

Supongo que mi pregunta realmente resulta en el uso de MVC. La idea básica es realmente básica, y entiendo eso. Pero parece que la mayoría de las aplicaciones tienen cada parte completamente separada la una de la otra ... ¿y si quiero, por ejemplo, combinar datos de dos modelos para mostrar en la misma página? Para tomar el ejemplo que planteé, si tengo un modelo de navegación y un modelo de página, ¿puede mi PageController acceder a ambos modelos? Supongo que asumí que un PageController solo puede acceder a un PageModel, y no a otro. Todos los ejemplos que he visto parecen operar de esta manera ... ¿es una suposición errónea?

O estoy totalmente perdido el punto, y es que 'hacerlo mal?'

+2

No hay un uno-a-uno entre los modelos y controladores . No hay nada de malo en escribir un controlador que use datos de muchos modelos diferentes. El modelo es tu información. Los controladores son tus comandos. Las vistas son tus pantallas. – Ken

Respuesta

3

¿Qué libros has leído? Creo que una mejor comprensión de MVC y Rails lo ayudaría más a largo plazo que el código de muestra, que puede verse tentado a copiar sin comprender.

El problema que está describiendo no es realmente diferente de encontrar y mostrar cualquier tipo de datos, que estoy seguro que ha visto cubierto en fragmentos en blogs, etc. (el uso de parciales y/o diseños es tal vez la unica diferencia).

Si aún no los ha leído, intente con Agile Web Development with Rails y The Rails Way.

También hay severalbooks que lo guían a través de la creación de una aplicación de muestra que incluye comentarios para asegurarse de que comprende lo que está haciendo.

+0

He leído The Rails Way, "Simply Rails 2" ...Estoy editando mi pregunta para incluir algunos detalles más. –

+0

Agine Web Development with Rails es un buen libro. – Ken

1

Su controlador puede acceder a cualquiera de sus modelos, por lo que si PageController necesita acceder a su NavModel está bien. Creo que, por lo general, el controlador o ayudante Nav contendría los métodos necesarios para preparar la vista de navegación, pero sin conocer los detalles de su proyecto no puedo asegurarlo, si cree que es parte de la lógica de la página, póngalo allí.

Puede que también le interese la pregunta "What goes where".