【问题标题】:uninitialized constant Net::HTTP::Patch (NameError)未初始化的常量 Net::HTTP::Patch (NameError)
【发布时间】:2013-10-27 19:21:32
【问题描述】:

我保留错误“/usr/local/bin/git_flow_tools.rb:55:in `set_issue': uninitialized constant Net::HTTP::Patch (NameError)”

我需要这个:

require 'rubygems'
require 'net/http'
require 'net/https'
require 'uri'
require 'timeout'
require 'json'
require 'pp'

此功能失败:

def self.set_issue(user, repo, number, data)
  uri              = URI.parse('https://api.github.com')
  http             = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl     = true if uri.scheme == 'https'
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  path                 = URI.escape("/repos/#{user}/#{repo}/issues/#{number}")
  req                  = Net::HTTP::Patch.new(path)
  req['Content-Type']  = 'application/json'
  req['Accept']        = 'application/json'
  req['Authorization'] = 'token OAUTH-TOKEN'
  req.body             = data

  begin
    Timeout::timeout(30) { JSON.parse http.request(req).body }
  rescue Exception => e
    puts "Failed to contact github #{e}"
  end
end

Get、Put 或 Post 等其他方法也可以正常工作。

有什么想法吗?

【问题讨论】:

    标签: ruby


    【解决方案1】:

    在需求之后尝试添加

    class Net::HTTP::Patch < Net::HTTPRequest
      METHOD = 'PATCH'
      REQUEST_HAS_BODY = true
      RESPONSE_HAS_BODY = true
    end
    

    【讨论】:

    • @okliv +1...你为什么要开课?我的意思是它如何解决问题?出于好奇而问。
    • 这为我解决了问题。我使用的是没有 PATCH 的旧版本 gem。
    猜你喜欢
    • 1970-01-01
    • 2015-01-19
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多