Respuesta

1

Puede parecer pasar un host:

redirect_to { :host => "www.siteB.com", :controller => "my_controller", :action => "my_action", :id => 123 } 

Mira la documentación para url_for.

+1

Esta solución asume que routes.rb de SiteA tiene una ruta que coincide con ese par de controlador/acción. Esto no es un problema si has mantenido las rutas predeterminadas. – EmFi

6

Si SitioB se está ejecutando la misma aplicación (es decir, son los mismos para que el servidor de las rutas), entonces se puede construir el redireccionamiento que describes con:

redirect_to :host => "www.siteB.com", 
      :controller => "my_controller", 
      :action => "my_action", 
      :my_parameter => 123 

en cuenta que las llaves que no manejados por url_for son automáticamente codificado como parámetros.

+0

Esta solución asume que routes.rb de SiteA tiene una ruta que coincide con ese par de controlador/acción. Esto no es un problema si has mantenido las rutas predeterminadas. – EmFi

1

En la línea de las otras respuestas. Si configura un controlador que define la ruta en su routes.rb del sitio A, puede usar los helpers de URL generados. Simplemente anule el: host como argumento.

Ejemplo:

del sitio routes.rb:

... 
map.resource whatever 
... 

del sitio Controlador:

... 
redirect_to edit_whatever_url(:host => "www.siteB.com", :my_parameter => 123) 
... 

En tanto que el servidor web de SitioB (carriles o de otro tipo) que reconoce la http://www.siteB.com/whaterver/edit?my_parameter=123' eres bueno.

Advertencia: Tenga en cuenta que redirigir un mensaje con 302 tiene consecuencias específicas como se define en RFC 2616. En pocas palabras, significa que se le pedirá a un usuario que reconfirme su publicación a la nueva URL, antes de que la publicación redireccionada pueda tener éxito.

Cuestiones relacionadas