【发布时间】:2018-09-24 15:17:48
【问题描述】:
我正在尝试使用“HTTP-Cookie”gem。因为我需要它,工作。但是Gem里面好像有个Bug,一年多没维护了。
解决方案是:自己制作。 但我的 Ruby 知识仅限于这一点。 (否则我不会使用 gem 来捕捉 cookie..)
问题来了: 如果您尝试将现有的 YAML 文件导入程序,则会引发此错误:
7: from C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar.rb:324:in `load'
6: from C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar.rb:324:in `open'
5: from C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar.rb:325:in `block in load'
4: from C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/yaml_saver.rb:44:in `load'
3: from C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/yaml_saver.rb:44:in `each'
2: from C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar/yaml_saver.rb:45:in `block in load'
1: from C:/Ruby/lib/ruby/gems/2.5.0/gems/mechanize-2.7.5/lib/mechanize/cookie_jar.rb:22:in `add'
C:/Ruby/lib/ruby/gems/2.5.0/gems/http-cookie-1.0.3/lib/http/cookie_jar.rb:108:in `add': undefined method `acceptable?' for #<Hash:0x0000000006c9d758> (NoMethodError)
表示:没有方法错误,因为方法“可接受?”无法在 cookie 类中找到。当我调查它时,我看到它就在那里。但它不在“class Cookie”中,它在“class
据我了解,
所以我的想法:
- 我使用 gem 提供的加载功能
- gem 需要“cookie”(.rb)。
- Gem 加载“Class self”,但不将该类读取为“cookie”。它读作“class.self”
- MRI 告诉我:我们没有找到方法为“可接受?”的类 cookie。
我的问题:
我说的对吗?
我现在可以做些什么来解决这个问题?将“class
【问题讨论】:
-
这是说在哈希上没有平均可接受的方法。你确定你用对了吗?
-
嗨,谢谢你的回答。但愿如此。它需要一个 yaml 文件。它的代码是:
codecookiefile = "kekstopf.yaml" jar = HTTP::CookieJar.new jar.load(cookiefile) if File.exist?(cookiefile)code -
嗨蒂姆!要弄清楚这里发生了什么,我们需要查看您的代码(生成此错误)和您尝试加载的文件的内容(kekstopf.yaml)。另外,您是使用 gem 保存此文件,还是来自其他地方?
-
嗨,迈克,感谢您的回答。因为我无法了解如何在 stackoverflow 上很好地格式化任何内容,所以我将这两个文件都发布在了 pastebin 上。 pastebin.com/HwMquYCE(我在会话 cookie 中更改了会话 ID .. 你知道为什么:D)
-
您是否使用 gem 生成了 yaml?宝石描述中有关于此的警告
标签: ruby rubygems mechanize httpcookie