Rails request.body 和 params 是不是一样的?

jiffies · 2012年08月19日 · 最后由 hooopo 回复于 2012年08月19日 · 5688 次阅读

params 是不是完整的把请求主体转化为一个哈希?

get 请求没有 body, 参数都在 url 中

post 请求参数多数在 body 中,请求 body 有各种不同 encode 方式,常见的是 urlencode 看起来就和 get 请求的参数差不多,但也可以是 multipart (带文件流) 或者其他一些神奇的编码方式

不管 get 还是 post 参数都会处理进 params, 另外 params 里还有 rails 塞进的东西,例如在 route.rb 中配置的参数、controller 和 action

显然不一样啊:

app.get "articles/1"
  Article Load (0.3ms)  SELECT `articles`.* FROM `articles` WHERE `articles`.`id` = 1 LIMIT 1
[8] pry(main)> app.request.params
=> {"action"=>"show", "controller"=>"articles", "id"=>"1"}
[9] pry(main)> app.request.body
=> #<StringIO:0x0000000532d188>

需要 登录 后方可回复, 如果你还没有账号请 注册新账号