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

时间:2011-03-30 22:58:54

标签: ruby-on-rails http ssl https

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

如果无法解决这个问题,那么创建相应网址的最佳方法是什么?这会有用吗?

if request.ssl?
  some_url(:protocol => "https")
else
  some_url
end

如果我能想出一种更自动化的方法,我会更喜欢它。也许如果rails url方法生成://somedomain.com/some/path,那么我想它会自动调整正确的协议。

谢谢,我将不胜感激。

2 个答案:

答案 0 :(得分:6)

答案 1 :(得分:2)

看起来有一些方法。在您的特定环境中,这些都不是理想的,但在ActionView::Helpers中,有一个url_for方法可以在您开始使用它时获得您想要的内容。另一个简单的选择是使用相对URL(即:'/ controller / action'而不是'https://myawesomesite.com/controller/action'),这也可以通过url_for方法生成。

除此之外,看起来你正在进行解决方案,或者深入到rails路径生成代码并自行修改代码。

不一定是你想要的最理想的答案,但是我的价格是0.02美元!