Sinatra接受标题选项值

时间:2013-10-25 21:43:32

标签: sinatra rack

鉴于此接受标题:

application/vnd.example.api.json; version=42

是否有一种简单的方法可以在不解析version的情况下获取env['HTTP_ACCEPT']的值?

顺便说一句:

检查request.accept,我们可以找到@params实例方法:

[#<Sinatra::Request::AcceptEntry:0x007fd214b3e500 @entry="application/vnd.example.api.json; version=42", @type="application/vnd.example.api.json", @params={"version"=>"42"}, @q=1.0>]

它们可能是一种访问它的方式......

1 个答案:

答案 0 :(得分:0)

简短回答应该是:是

答案很长:到这里:https://github.com/sinatra/sinatra/blob/master/lib/sinatra/base.rb#L74 看看代码:

class AcceptEntry
  attr_accessor :params
  [...]
end

所以这应该归结为:

request.accept[0].params['version'] #=> 42