我正在使用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=new
和controller=users
。
我使用的是Rails 3.2.6。
答案 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
这解决了这个问题。