me preguntaba cual es la mejor forma de tener una aplicacion Rails en 3
dominios distintos y que esta renderee las vistas / layouts dependiendo
el
dominio en donde se encuentre. asi tambien como compartir cookies para
los 3
dominios
que me recomiendan, ? generlmente uso nginx + mongrel
me imagino que en el app controller se detecte el request.host y ahi
definir
el layout pero en el caso de compartir sessiones no se me ocurre, parece
que
no se puede en distintos dominios no?
Hola Miguel, hace poco tuve que hacer esto, pero en mi caso tenia
subdominios para distintos paises:
class ApplicationController < ActionController::Base
…
before_filter :current_country
before_filter :set_country_view_path
protected
def current_country
@country_code ||= request.subdomains.shift
end
def set_country_view_path
self.prepend_view_path "#{Rails.root}/app/views/#{@country_code}"
end
end
De esta manera logro que Rails coja mis vistas de acuerdo al pais donde
me
encuentro, por ejemplo, si el usuario ingreso a: ar.midominio.com,
entonces
Rails cojera la vista de la siguiente ruta:
app/views/ar/home/index.html.haml y en caso de que esta vista no exista
seguira buscando en el nivel superior, por lo que cogera la vista desde:
app/views/home/index.html.haml
Lo de compartir sesiones a traves de diferentes dominios no crea que sea
posible por cuestiones de seguridad en el navegador, en el caso de
subdominios si es una tarea sencilla, en el archivo de configuracion del
entorno que quieras puedes colocar esto:
No podrás compartir sesiones entre diferentes dominios, solo lo
conseguirás
si lo haces con diferentes subdominios. Lo que quizás te interese hacer
es
tener diferentes dominios que redireccionen a uno central que haga la
distinción por subdominios, queda un poco liado pero es decir:
Solo para los que esten ya en rails 2.3.x ahora :session_domain y
:session_key se llaman :domain y :session y por defecto esta
configuracion ya no va en environment.rb sido en un initializer como
session_store.rb con algo como: