Before_filter no sirve para cambiar layout

Hola, yo nuevamente haciendo preguntas, es que estoy bastante complicado
con
el tema de los layouts y la internacionalizacion de mi sitio, mi
problema es
que por un requermiento de diseño debo cambiar el layout de acuerdo a la
version params[:lang].

dado esto , estoy intentando hacer un before filter para activar el
layout
correpondiente de acuerdo a parametro get que le llegue, el codigo es
algo
asi

class ApplicationController < ActionController::Base

before_filter :set_default_locale

def set_default_locale
if (params[:lang].nil? or params[:lang].empty?)

   @layout = 'sitio_es'
    else
      @layout = 'sitio_en'

    end


end

luego en mi controller hacer algo asi:

class AlgoController < ApplicationController

layout @layout

pero no me funciona, es decir la variable @layout no me agarra el valor
del
before filter, tambien he probado de otras maneras, por ejemplo si desde
mi
controller defino la variable layout asi:

class AlgoController < ApplicationController

@layout = ‘sitio_es’

layout = @layout

def …

ahi me funciona pero no me sirve del todo, pero si por ejemplo a la
variable
layout le digo que : @layout = “sitio_es_#{params[:lang]}”, me arroja un
error que desconoce la variable params, el asunto es que necesito que
layout
= @layout tome el valor que se crea en el before filter, pero no me
resulta,
¿es que layout no toma valores del before filter?

ayuda plis

Saludos

Disculpen la molestia, ya lo he resulto.

lo hice de la siguiente forma:

layout :set_lang
private
def set_lang

if (params[:lang].nil? or params[:lang].empty?)
# set_locale “es”
‘sitio_es’
else
“sitio_#{params[:lang]}”
# set_locale params[:params]
end
end

espero que le pueda servir a alguien

Saludos

On Jan 13, 2008 2:47 PM, Miguel M. [email protected]