首页 分类 关于我
ruby
Nginx 配置示例 工程师的产品观 理理File/Dir/Pathname(一) TracePoint介绍 ruby中的return 如何动态改变某个class的祖先链 ObjectSpace介绍 Rails日志实现探索(3) Rails日志实现探索(2) Rails日志实现探索(1) Rails中的request rescue exception in ruby 设计模式之观察者模式 require 的故事 ruby中的编码 研究ruby的一些小技巧 Rails中间件 ruby对象的序列化 ActiveSupport宝藏之MessageVerifier 如何写rakefile Ruby on Rails 环境及准备 基于Rack的项目初始化
git
如何移除某次提交之前的版本历史 Git 不常用的好用的命令 Git高级技巧之忽略文件
database
Mysql数据库编码 从mongodb向mysql迁移数据
工具
搭建ipsec服务
linux
Linux 常用查看命令

Rails中的request

每个web请求都有对应的 Request和Response,在Rails中,我们如何获取关于request的信息呢?

Request对象

在controller的实例中,可以通过request方法获取request对象

request
# => ActionDispatch::Request对象

Request对象包含的内容

Headers

request.headers
# => #<ActionDispatch::Http::Headers:0x007ff849c55a50>

headers分为: request.headers response.headers

Params

request.params # => ActiveSupport::HashWithIndifferentAccess对象
request.parameters # 同request.params
request.path_parameters

params 返回的是 ActionController::Parameters 对象

Method

request.method # => "GET",String对象
request.method_symbol  # => :get,Symbol对象
request.request_method_symbol

request.get?
request.post?
request.put?
request.patch?
request.delete?
request.head?

Url

request.fullpath
request.original_fullpath
request.original_url

请求内容

request.body  # => StringIO对象
request.body_stream

request.raw_post

request.form_data?

request.xml_http_request?
request.authorization

MIME等信息

request.media_type
request.accepts
request.content_type
request.formats
request.format
request.variant

客户端、服务端、中间件信息

request.ip
request.remote_ip
request.local?

request.uuid

request.server_software

缓存相关信息

request.if_modified_since
request.if_none_match
request.if_none_match_etags

© 2018 www.xinshengyin.com All rights reserved.

版权所有