我正在尝试在我的一个控制器中向完全限定的 URL 发出 redirect_to + 我想传入一些参数
在站点 AI 的控制器中执行以下操作:
redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123"
在rails中有更好的方法吗?
我正在尝试在我的一个控制器中向完全限定的 URL 发出 redirect_to + 我想传入一些参数
在站点 AI 的控制器中执行以下操作:
redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123"
在rails中有更好的方法吗?
如果 SiteB 正在运行相同的应用程序(即该服务器的路由相同),那么您可以构建您描述的重定向:
redirect_to :host => "www.siteB.com",
:controller => "my_controller",
:action => "my_action",
:my_parameter => 123
请注意,任何未被处理的键都会url_for
自动编码为参数。
沿着其他反应的路线。如果您在站点 A 的 routes.rb 中设置了定义路径的控制器,则可以使用生成的 url 帮助程序。只需覆盖 :host 作为参数。
例子:
站点 A Routes.rb:
...
map.resource whatever
...
站点 A 控制器:
...
redirect_to edit_whatever_url(:host => "www.siteB.com", :my_parameter => 123)
...
只要 SiteB 的网络服务器(rails 或其他)识别出http://www.siteB.com/whaterver/edit?my_parameter=123
你是好的。
警告:请记住,使用 302 重定向帖子会产生RFC 2616中定义的特定后果。简而言之,这意味着在重定向的帖子成功之前,将要求用户重新确认他们对新 URL 的帖子。
您显然可以通过主机:
redirect_to { :host => "www.siteB.com", :controller => "my_controller", :action => "my_action", :id => 123 }
查看url_for
.