47 votos

Dónde poner los parciales compartida por el conjunto de la aplicación en Rails?

A dónde podría ir sobre la colocación parcial de los archivos compartidos por más de una modelo? Tengo una página que se llama crop.html.erb que se usa para un modelo - Photo. Ahora me gustaría utilizarlo para otro modelo llamado User como bueno.

Yo podría copiar y pegar el código, pero que no es muy SECO, así que me imaginé que me iba a mover en un parcial.

Ya que es compartida entre los dos modelos - donde iba el lugar que parcial?

Gracias!

58voto

John Topley Puntos 58789

Los Rieles de la convención es poner compartido parciales en /app/views/shared.

46voto

ecoologic Puntos 2748

Actualización

Diseño de la herencia está ahora en las guías bajo el diseño y la representación La herencia de plantillas funciona de manera similar.

Rails 3.1 y versiones siguientes implementar la herencia de plantillas, así que creo que el lugar correcto para compartir parciales es ahora /app/views/application/, en products#index puede hacer lo siguiente:

-# products#index
= render @products.presence || 'empty'

-# /app/views/application/_empty.html.haml
There are no items

por cierto es application debido a que la conexión es el controlador de la herencia, por lo que esto supone ProductsController < ApplicationController

De esta manera si se implementa /app/views/products/_empty.html.haml que será tomado, el de arriba es un mensaje para todos los que faltan parciales, y yo no puedo comprobar ahora mismo, pero creo que incluso para la propia plantilla...

Railscast: la herencia de plantillas!

4voto

Henrik Sjökvist Puntos 121

Los Rieles de Vista de los usos app/views/layouts el uso compartido de los parciales como el encabezado y pie de página, pero el Ruby on Rails Guía de usos app/views/shared en un ejemplo. Supongo que no se reduce a la preferencia personal. Yo usaría layouts de alto nivel de la materia como una de las principales nav o un pie de página, pero shared para más estrecho nivel de controlador de cosas como una forma.

3voto

Toby Hede Puntos 22128

En general tienen una compartido de la carpeta en mis opiniones que contiene comúnmente utilizado parciales.

0voto

Jimmy Cuadra Puntos 13499

No importa dónde colocarlos. Usted puede hacer ningún parcial en cualquier posición arbitraria por proporcionar la ruta de acceso del archivo a render - no tiene que estar asociado con el controlador de la representación. Yo uso un directorio llamado simplemente partials bajo view directorio, y llamar a los parciales en ella, como este:

render :partial => 'partials/mypartial'

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X