2011-02-26 22 views
9

Quiero tener un diseño diferente para una sola acción en mi aplicación Rails. ¿Cómo puedo hacer eso?Diseño diferente para una sola página en Rails

+1

http://guides.rubyonrails.org/layouts_and_rendering.html – ecoologic

+0

duplicado posible de [3 rieles, cómo añadir una vista de que no utiliza mismo diseño que el resto de aplicación?] (http://stackoverflow.com/questions/5090084/rails-3-how-add-a-view-that-does-not-use-same-layout-as-rest-of-app) – mlt

Respuesta

7
layout :resolve_layout 

    . 
    . 
    . 
    private 
     def resolve_layout 
     case action_name 
     when "new" 
      "alternate" 
     else 
      "application" 
     end 
     end 
26
# controller that calls the page 
def action 
    render :layout => 'other' 
end 
+0

Entonces en mi caso, mi "acción def" es "def homepage" AKA el índice. Hice un archivo layout.css.scss y lo puse en mi carpeta de stylesheets y lo agregué a su línea de renderización con 'other' como 'layout' y mi aplicación se colgó. Estoy confundido en cuanto a lo que estoy haciendo mal. Mi nuevo archivo de diseño es el mismo que mi archivo de diseño original. – Jubl

+0

Difícil de decir sin verificar el código, abra una nueva pregunta y puedo echarle un vistazo – ecoologic

19
class MyController < ApplicationController 
    layout "special", :only => :action 

    def action 
    #action code 
    end 
end 
+0

Hmm. En realidad, eso hace que todas mis otras acciones para ese controlador NO tengan diseño. ¿Alguna forma de recuperarlos? –

+2

No lo he intentado, pero ¿qué pasa si pongo otra línea en la parte superior de forma predeterminada? algo así como 'layout 'normal' #: except =>: action' – ecoologic

+1

@ecologic, eso no funcionará (en los rieles 3.0.X de todos modos). Solo puede tener una declaración de diseño global por controlador – SooDesuNe

Cuestiones relacionadas