rails中慎用request.env
项目中,为了获取URL中的path信息,就是域名后到?前的那一段字符串,随便百度了下,看到一篇文章里说用request.env[‘path’]可以获取,本地试了一下的确可以,在测试机上也OK,没想太多就部署上线了。
然后,然后就挂了,线上服务器request.env[‘path’] = nil,一开始无法理解,后来得知web server是不一样的,打印了request.env这个hash,内容完全不一致,囧到了。然后发现request对象是直接有一套API的,直接request.path就好了,改为这个就所有web server通用了。
后来知道了,request.env只是简单的把类似CGI之前的环境变量参数封装起来,没有经过任何解析,这个是和web server的处理有很大的区别,即不跨环境的,要慎用。
Categories: ruby on rails
评论 (0)
留下评论