我使用ruby-fedora gem从我的数据库中获取信息
Fedora::Repository.instance.fetch_content
我的代码很有效,因为在我更新到Ruby 2.1.1之前没有问题。当我执行代码来获取数据时,来自gem本身的代码(bundle / ruby / 2.1.0 / gems / ruby-fedora-1.0.5 / lib / fedora / connection.rb)会产生以下错误:
undefined method `use_ssl' for #<Net::HTTP 127.0.0.1:8080 open=false>
bundle/ruby/2.1.0/gems/ruby-fedora-1.0.5/lib/fedora/connection.rb:191:in `http'
bundle/ruby/2.1.0/gems/ruby-fedora-1.0.5/lib/fedora/connection.rb:152:in `request'
之前有人遇到过这样的事吗?可能是由于宝石不兼容吗?
编辑:我编辑了宝石代码,问题出现的地方是:
# Creates new Net::HTTP instance for communication with
# remote service and resources.
def http
http = Net::HTTP.new(@site.host, @site.port)
http.use_ssl = @site.is_a?(URI::HTTPS)
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if http.use_ssl <--- THIS LINE
http
end
当我用以下功能替换该功能时,一切正常(因为我不使用HTTPS)
# Creates new Net::HTTP instance for communication with
# remote service and resources.
def http
http = Net::HTTP.new(@site.host, @site.port)
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if @site.is_a?(URI::HTTPS)
http
end
答案 0 :(得分:2)
看起来问题是不再主动维护ruby-fedora,it seems最后一个版本是在2009年。现在我确定你的修复程序可以正常工作,但如果你需要额外的帮助转发你需要自己破解一切。他们甚至不再有github页了!!
ActiveFedora似乎是一个积极维护的项目,应该适合您的需求。 Here it is on ruby-gems,最后一个版本是7天前(IMO在5年前击败!!)。