ruby-on-rails - rails image path
Diferente color de fondo para diferentes páginas en rieles (3)
Así que estoy usando un archivo application.html.erb que es básicamente el diseño de cada página en mi sitio web. Pero quiero que la página de inicio tenga un fondo blanco y que el resto de las páginas tengan un fondo diferente. El problema es que si envuelvo todo el archivo de página de inicio en un div, solo ajusta el lugar de "rendimiento" y se muestra como un cuadro con un fondo blanco dentro de un cuadro más grande con un fondo gris. Entonces, ¿cómo puedo cambiar el fondo completo de la página de inicio y dejar el resto?
¡Gracias!
Ampliar la respuesta proporcionada por @muffinista: puede usar una variable de instancia establecida en el controlador para determinar cuándo colocar la clase ''página de inicio'' en la etiqueta de cuerpo. Asi que:
def index
@home_page = true
# existing code
end
y en el diseño:
<body class="<%= @home_page ? ''homepage'' : ''''%>">
<%= yield %>
</body>
Considera poner una clase especial en la etiqueta corporal (o tal vez en tu envoltorio principal) de tu página de inicio, luego hazlo en CSS. Para que pueda tener en su página de inicio:
<body class="homepage">
<p>hi!</p>
</body>
Luego en tus otras páginas:
<body>
<p>i am not a homepage!</p>
</body>
Y en tu CSS:
body {
// some general css
}
body.homepage {
// some css for homepage elements
background-color: #000000;
}
ACTUALIZACIÓN : puede usar un ayudante como este para hacer la vida más fácil:
def body_class
@body_class || ''''
end
Luego, en las vistas de tu página principal, pon algo así en la parte superior:
<% @body_class = "homepage" %>
Obviamente, esto depende de los detalles de su aplicación, pero funciona bien para mí.
Solo para agregar a la respuesta aceptada, si necesita establecer fondos diferentes para varias páginas, tendría sentido y agregar legibilidad para mover el código y encontrar un fondo apropiado en un parcial:
<body class= <%=render partial: "layouts/background" %> >
_background.html.erb:
<%- if @main_page_background OR @stylish_background %>
"main_page_background"
<%- elsif @dark_background %>
"dark_page_background"
<%- else %>
""
<% end %>