在rails 3中构建没有子域的url

Yuv*_*rmi 4 redirect ruby-on-rails ruby-on-rails-3

我目前正在检测用户是否具有某个子域,并将用户重定向到没有子域的URL:

subdom = request.subdomains.first
if subdom == "redirectme"
  redirect_to(request.protocol + request.domain + ":" + request.port.to_s)
end
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我手动重建域不包含子取代是这样的: http://redirectme.example.com:3000 到: http://example.com:3000

但是,我必须要记住,有时不会有一个端口(等冒号后的域名是多余的),我怀疑还有其他的事情我没有考虑.在没有子域组件的情况下获取完整域的更好方法是什么?

谢谢!

Jas*_*nis 14

怎么样root_url( :subdomain => false )


Luc*_*rim 13

其实我不知道是否有更好的方法.至于组件,你几乎得到它:协议,域和端口.

如果你想结肠消失,你可以这样做:

redirect_to(request.protocol + request.domain + (request.port.nil? ? '' : ":#{request.port}"))
Run Code Online (Sandbox Code Playgroud)

只是一个执行魔法的零检查!