tutorial rails ejemplos descargar curso caracteristicas ruby-on-rails ruby ruby-on-rails-3 templates dry

ruby on rails - rails - ¿En qué carpeta debo poner plantillas parciales compartidas "globales"?



ruby on rails tutorial (3)

Esta pregunta ya tiene una respuesta aquí:

Estoy usando Ruby on Rails 3.0.7 y estoy planeando usar plantillas parciales. Todas las clases de mi aplicación usarían los mismos parciales, así que tengo que decidir dónde localizarlos.

¿Es una buena idea colocar plantillas parciales compartidas "globales" en la carpeta lib ? Si no, ¿cuál es una práctica común para elegir la carpeta donde colocarlos? ¿Algún consejo sobre cómo nombrar y cargar correctamente esa carpeta?


Conventions es ponerlos en app/views/shared

Si vas a tener muchos parciales, te recomiendo que los incluyas en los subdirectorios de esa carpeta, lo que tenga sentido para tu aplicación, ya que tener muchos parciales en un directorio generalmente no es una buena práctica.


El estándar está colocando todos los parciales compartidos en la app/views/shared , y haciendo referencia a ellos como

render :partial => ''shared/partial_name''

Si tiene un parcial estándar "fila en una lista" (por ejemplo, para una página de índice), puede usar un parcial compartido como:

# To render a single object row: render :partial => ''shared/item'', :locals => { :item => @item } # Or to render them all: render :partial => ''shared/item'', :collection => @items


Rails 4:

pon los parciales que piensas utilizar a través de tu aplicación en /app/views/application

Entonces, en cualquier lugar de su aplicación puede hacerlo fácilmente:

render partial: ''partial_name'', variable_name: variable

El beneficio adicional es que siempre puede anular el parcial en un espacio de vista particular al redefinir qué significa eso parcial en /app/views/controller_name/_partial_name.html.erb y las llamadas al parcial harán referencia al contexto más específico que '' vuelva a entrar. Si eso no existe, obtendrá el nivel de aplicación parcial.

Sugerencia tomada de Thoughtbot