【发布时间】:2014-04-22 17:27:06
【问题描述】:
我正在尝试确保我的应用程序控制器 (Rails 3.2) 的 before_filter 中有一个规范域。如果 GET 请求来自受支持的域,而不是规范域,那么我们应该重定向到确切的某些路径和协议,但在换出的域上。
before_filter :ensure_correct_domain
def ensure_correct_domain
if Rails.env.production? && request.get? && request.host != Settings.domain
redirect_to host: Settings.domain
end
end
这段代码大部分都有效,但我发现它在格式化路径上失败了。以下是发生的事情:
很遗憾,我丢失了扩展名,我不知道为什么。我还担心还有更多我没有偶然发现的边缘情况。
我怎样才能干净地替换当前请求的 URL only 的 URI 的主机并让它在 所有 情况下工作?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3