我想问题我的控制器的一个redirect_to的一个完全合格的URL +我想在某些参数Rails的redirect_to“www.somewebsite.com”GET/POST参数?
在控制器现场AI通过做:
redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123"
是否有更好的方式来做到这一点在铁轨?
我想问题我的控制器的一个redirect_to的一个完全合格的URL +我想在某些参数Rails的redirect_to“www.somewebsite.com”GET/POST参数?
在控制器现场AI通过做:
redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123"
是否有更好的方式来做到这一点在铁轨?
您可以通过明显主机:
redirect_to { :host => "www.siteB.com", :controller => "my_controller", :action => "my_action", :id => 123 }
退房为url_for
的文档。
如果网站B正在运行相同的应用程序(即路线是该服务器的相同),那么你就可以建立你描述的重定向:
redirect_to :host => "www.siteB.com",
:controller => "my_controller",
:action => "my_action",
:my_parameter => 123
注意,不是url_for
处理的任何键是自动编码为参数。
此解决方案假定SiteA的routes.rb具有与该控制器/操作对匹配的路由。如果您保留了默认路由,这不是问题。 – EmFi 2010-01-07 14:03:57
沿着其他回应的路线。如果您在站点A的routes.rb中设置了一个定义路径的控制器,则可以使用生成的url助手。只需重写:host作为参数。
例子:
站点A的routes.rb:
...
map.resource whatever
...
站点A控制器:
...
redirect_to edit_whatever_url(:host => "www.siteB.com", :my_parameter => 123)
...
只要网站B的Web服务器(轨或其他)承认http://www.siteB.com/whaterver/edit?my_parameter=123
你”很好。
警告:请记住,使用302重定向帖子具有RFC 2616中定义的特定后果。简而言之,这意味着在重定向的帖子可以成功之前,将要求用户重新确认他们的帖子到新的URL。
此解决方案假定SiteA的routes.rb具有匹配该控制器/操作对的路由。如果您保留了默认路由,这不是问题。 – EmFi 2010-01-07 14:04:30