在控制器中使用redirect_to example_path
时,协议将更改为http。我希望协议保持与原始请求相同,例如如果我正在使用https,我希望被重定向到https://example_path ...如果我正在使用http,我希望被重定向到http://example_path ......
我知道我可以使用config.force_ssl = true
,但我希望ssl是可选的。
答案 0 :(得分:1)
redirect_to在其args哈希中获取协议密钥。你可以做到
redirect_to example_path, protocol: request.protocol
那应该让你排序。如果这不起作用,请告诉我。
答案 1 :(得分:1)
@ ruby_newbie的答案对我不起作用。 redirect_to
String
protocol
忽略了only_path
arg。此外,我使用代理进行SSL终止,因此Rail的协议可能与用户使用的协议不同。您可以使用protocol: '//'
,但我最终使用redirect_to controller: 'example', action: 'show', protocol: '//'
,如下所示:
location
答案 2 :(得分:0)
对我有用的是在我的nginx配置中添加一行。我使用nginx + unicorn,在端口3000中监听http,在端口3001中监听https。
完整的配置文件如下,将其放置在站点可用的位置,并用适当的内容替换[...]:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setContentIntent(pendingIntent)
.setWhen(0);