make rails url helpers使用适当的协议?

Jor*_*eña 10 ssl https ruby-on-rails http

嘿,我允许通过https和http访问我的应用程序,一切正常,除非我使用任何_url方法.如果我通过https访问使用此类方法的视图,则会将其作为https提供,但生成的URL使用http协议.我想知道这是否正常,或者是否有办法让它自动化.我希望rails会根据页面的访问方式自动生成相应的url.

如果没有办法解决这个问题,那么创建合适网址的最佳方法是什么?这会有用吗?

if request.ssl?
  some_url(:protocol => "https")
else
  some_url
end
Run Code Online (Sandbox Code Playgroud)

如果我能想出一种更自动化的方法,我更愿意这样做.也许如果rails url方法生成://somedomain.com/some/path,那么我想它会自动适应正确的协议.

谢谢,我将不胜感激任何帮助.

Chr*_*ber 2

看起来有几种方法。在您的特定环境中,这些都可能不是理想的,但在ActionView::Helpers中,有一个 url_for 方法,如果您开始使用它,它可能会为您提供您想要的东西。另一个简单的选项是使用相对 URL(即:“/controller/action”而不是“https://myawesomesite.com/controller/action”),它也可以由 url_for 方法生成。

除此之外,看起来您正在着手解决问题,或者深入研究 Rails 路径,生成代码并自行更改它。

这可能不是您正在寻找的最理想的答案,但这是我的 0.02 美元!