Rails中使用request, response
做过JSP/.NET/PHP开发的朋友对request、response、session、cookie概念比较熟悉,但在Rails开发时很少接触这些概念,这是因为Rails把这些东西做了很好的封装,以至于我们几乎不需要专门与它们打交道。如果你想看到封闭后的东西,Rails中有个gem叫Rack,可以了解一下。下面介绍一些访问这些变量的简便方法
在Controller的每个action中你都可以使用下面变量:
action_name:当前action的名字 cookies:查看和设置浏览器cookie headers:response将要使用的HTTP头信息组成的一个hash,一般设置Content-Type时才用 params:这个很常用,请求参数组成的一个hash,params[:id]与params['id']相等。 request:收到的请求,包含以下属性: request_method:返回请求方法,有:delete,:get,:head,:post,:put method:与request_method相同,除了:head会返回:get。因为这两个从程序角度来看功能是一样的。 delete?,get?,head?,post?,put?:判断请求方法返回true或false xml_http_request?和xhr?:ajax请求返回true,否则返回false。注意它和method参数是无关的。 url:返回request的完整URL remote_ip:返回远程IP地址。如果客户端使用proxy可能返回多于一个地址。 headers:请求的http headers body:请求的body构成的I/O流 response:响应对象 session:session组成的hash