Forum: Rails-ES una aplicacion en distintos dominios

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Miguel M. (Guest)
on 2009-03-27 01:42
(Received via mailing list)
Hola a todos ,

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?


Saludos


Atte.
Miguel Michelson Martinez
Ruben D. (Guest)
on 2009-03-27 02:14
(Received via mailing list)
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:

config.action_controller.session = {
  :session_domain => '.midominio.com',
  :session_key => '_av_session',
  :secret => 'XXXXXXXXXX'
}

De todas maneras una busqueda simple te puede dar mas ideas:
http://tinyurl.com/dlglep

Saludos.
Miguel M. (Guest)
on 2009-03-27 02:27
(Received via mailing list)
Gracias Ruben

ahora me queda mas clara la pelicula

saludos

Atte.
Miguel Michelson Martinez
---------------------------------------
www.artenlinea.com


2009/3/26 Ruben. D. <removed_email_address@domain.invalid>
Toni R. (Guest)
on 2009-03-27 11:19
(Received via mailing list)
Hola,

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:

www.app1.com
www.app2.com --> app2.app1.com
www.app3.com --> app3.app1.com

Es por ejemplo lo que hace google con gmail para compartir la sesión, tu
entras a www.gmail.com pero te redirecciona hacia mail.google.com

Saludos,

2009/3/27 Miguel M. <removed_email_address@domain.invalid>
cartuchoGL (Guest)
on 2009-03-27 17:42
(Received via mailing list)
Hola lista,

Ruben. D. escribió:
>     def current_country
> ar.midominio.com <http://ar.midominio.com>, entonces Rails cojera la
>   :session_domain => '.midominio.com <http://midominio.com>',
>   :session_key => '_av_session',
>   :secret => 'XXXXXXXXXX'
> }

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:

ActionController::Base.session = {
  :key         => '_kk_session',
  :domain   => 'midominio.com',
  :secret      => 'long string'
}

>
> De todas maneras una busqueda simple te puede dar mas ideas:
> http://tinyurl.com/dlglep
>
> Saludos.
>
> --
> Rubén Dávila Santos.
> http://rubenonrails.com

Un saludo.
This topic is locked and can not be replied to.