rails中慎用request.env

七月 19th, 2014 1,015 留下评论 阅读评论

项目中,为了获取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 标签:
  1. 还没有评论呢。
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif