1

私は 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

&action=new呼び出された URL を削除したり、呼び出した URL から取得したりするにはどうすればよいですかcontroller=users

Rails 3.2.6 を使用しています。

4

3 に答える 3

1

to_symを変換する行は、文字列をに変換していませんでした

'actionname'

コントローラ名を削除して、コードが次のようになるようにしてください

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

こちらのRailsのドキュメントによると、リダイレクトは2番目のパラメータをURLのステータスコードとして扱います。

于 2012-06-27T02:56:43.550 に答える
1

これはどう...

redirect_to url_for params.merge({:protocol => 'https://'}).
  except(:controller_name, :action_name, ... )
于 2012-06-27T02:57:11.477 に答える
0

多くの調査の結果、次のことがわかりました。

request.query_parameters

これにより、問題が修正されます。

于 2012-06-27T05:18:42.190 に答える