2010-11-03 5 views
6

Ho problemi con qualcosa che dovrebbe essere semplice.utilizzando layout diversi per un intero controller

Ho due casi d'uso ...

  • L'utente è il sito direttamente
  • L'utente sta utilizzando un iframe da un altro sito

voglio fare la stessa cosa in entrambi i casi tranne che non voglio usare il layout per il mio sito web nel caso sia l'iframe quindi ho un layout "semplice"

layout "plain" 

Come posso assegnare dinamicamente il layout a seconda dei casi ..

cioè params[:iframe] == true ecc

Nulla che faccio sembra funzionare.

risposta

8

provare questo

layout :layout_by_resource 

def layout_by_resource 
    if params[:iframe] == true 
    'plain' 
    else 
    "your-main-layout" 
    end 
end 
-1

ne dite di questo

class FramesController < ApplicationController 
    before_filter :decide_on_layout 


    protected 
    def decide_on_layout 
    layout "plain" if params[:iframe] == "y" 
    end 

end 
+1

che mi dà "metodo non definito' di layout' per # " ;-( – holden