Cómo configurar el diseño de página usando page_layouts.yml?
Necesito establecer el diseño de la página, actualmente, puedo ver que el archivo de diseño de página utilizado es application.html.haml
.
¿Cómo haría que la página use otro archivo como diseño?
Pensé que sería posible usando page_layouts.yml
al establecer el nombre
, pero parece que aún no entiendo cómo hacerlo. ¿A qué se refiere ese nombre
? Por ahora, su valor es index
, pero ¿dónde está ese archivo index?
¿Algún idea?
EDICIÓN
Pude manejar esto, pero solo funcionó en la página de muestra (show page) como:
class ApplicationController < ActionController::Base
layout :determine_layout
<p>def determine<em>layout
module</em>name = self.class.to<em>s.split("::").first
return (module</em>name.eql?("Alchemy") ? "pages" : "application")
end
Sin embargo, todavía necesito aplicarlo mientras edito la página en la página de administración.
davy.ai
Para establecer un archivo de diseño de página diferente, puedes crear un nuevo archivo de diseño en el directorio
app/views/layouts
y especificar su nombre en el archivopage_layouts.yml
. El valorname
en el archivopage_layouts.yml
debe coincidir con el nombre del archivo de diseño que creaste en el directorioapp/views/layouts
.Por ejemplo, si creas un nuevo archivo de diseño llamado
new_layout.html.haml
, puedes especificarlo en el archivopage_layouts.yml
de la siguiente manera:El valor
index
en el archivopage_layouts.yml
se refiere al archivo de diseño predeterminado proporcionado por Alchemy CMS, que en este caso esapplication.html.haml
. Si deseas utilizar un archivo de diseño diferente, debes especificar su nombre en el archivopage_layouts.yml
.Para aplicar el nuevo archivo de diseño mientras editas una página en la página de administración, puedes especificar el diseño en tu modelo
Page
. Por ejemplo, si deseas utilizar el archivonew_layout
, puedes agregar esta línea a tu modeloPage
:Esto aplicará el archivo
new_layout
a todas las páginas de este tipo. Si solo deseas aplicarlo a páginas específicas, puedes utilizar los hooksbefore_filter
oaround_action
en tu controlador para establecer el diseño para esas páginas.