Rails - HTTP到HTTPS(反之亦然)重定向添加额外的参数

时间:2012-06-27 02:01:38

标签: ruby-on-rails ruby-on-rails-3 redirect

我正在使用Sslrequirements.rb(并根据我的需要修改它),现在当页面转到HTTP到HTTPS时,它会添加额外的参数。问题是我如何保留正在传递的正确参数,以及如何确保传递的控制器和操作名称不与URL一起使用。

调用以下块时

redirect_to :protocol => "https://", :controller => controller_name.to_sym, :action => action_name.to_sym, :params => params

使用这些参数调用注册页面。

https://mydomain.com/signup?account=free&action=new&controller=users

如何从调用的URL中删除&action=newcontroller=users

我使用的是Rails 3.2.6。

3 个答案:

答案 0 :(得分:1)

转换为to_sym的行未将String转换为

  

'actionname'

尝试删除控制器名称,以便您的代码看起来像这样

redirect_to :protocol => "https://", :action => 'action_name', :params => [params:id]

根据rails文档here,重定向将您的第二个参数视为URL的状态代码。

答案 1 :(得分:1)

这个怎么样......

redirect_to url_for params.merge({:protocol => 'https://'}).
  except(:controller_name, :action_name, ... )

答案 2 :(得分:0)

经过大量研究后我发现:

request.query_parameters

这解决了这个问题。