rails中获取url信息的一些方法

如本机我测试域名为test.blog.zool.it:3000

打开的uri为/post/Hello-World

fullurl为http://test.blog.zool.it:3000/post/Hello-world

则rails的路由生成一下几个方法

domain(tld_length=1)

取得域名

request.domain#=>zool.it

request.domain(2)#=>blog.zool.it

subdomain(tld_length=1)

subdomains(tld_length=1)

取得子域名

request.subdomain#=>"test.blog"

request.subdomain(2)#=>"test"

request.subdomain#=>["test","blog"]

request.subdomain(2)#=>["test"]

host()

取得主机名

request.host#=>"test.blog.zool.it"

host_with_port()

取得带端口的主机名

request.host_with_port#=>"test.blog.zool.it:3000"

raw_host_with_port()

代理服务器的主机名和端口

request.raw_host_with_port#=>"test.blog.zool.it:3000"

port()

取得由raw_host_with_port()获得的端口数值

request.port#=>3000

port_string()

取得raw_host_with_port()获得的端口文本字符串

request.port_string#=>":3000"

protocol()

取得当前使用网络协议

request.protocol#=>"http://"

scheme()

取得网络协议

request.scheme#=>"http"

request_uri()

request请求的uri地址

request.request_uri#=>"/posts/Hello-World"

server_port

server_port()

取得由env[‘SERVER_PORT’]返回的端口值

request.server_port#=>"3000"

ssl?()

当前是否在是用https加密协议

request.ssl?()#=>false

standard_port()

返回网络协议标准端口(http为80,https为443)

request.standard_port#=>80

standard_port?()

判断当前协议是否是标准端口

request.standard_port?#=>false

url()

取得当前requset完整url

request.url #=> "http://test.blog.zool.it:3000/posts/Hello-World"

原文地址: http://zool.it/posts/33

相关推荐