在编写一个ruby脚本来解码机架会话cookie并使用ruby函数Marshal load加载对象时,我遇到以下错误:
错误:未定义类/模块机架::会话::会话Id
这是我的Ruby脚本:
require 'pp'
require 'base64'
require 'uri'
require 'rack' # solves the error: Error: undefined class/module Rack::
c = gets
cookie, signature = c.split("--")
decoded = Base64.decode64(URI.decode(cookie))
begin
object = Marshal.load(decoded)
pp object
rescue ArgumentError => e
puts "Error: " + e.to_s
end
我如何解决这个问题?我试着寻找解决stackoverflow的方法,但是找不到。
2条答案
按热度按时间monwx1rj1#
感谢Louis Nyffenegger (@snyff)帮助我完成了这个https://twitter.com/snyff/status/1407054131697758211?s=20
此错误可以通过创建method stub来解决
ql3eal8s2#
请尝试清除网站的所有Cookie。
我认为这是可行的,因为在加载Rack::Session::SessionId类时,某些东西导致了异常。
在Rails应用程序中偶尔会发生这种类型的错误。类定义(例如模型中)中的SyntaxError(或任何其他异常)可能会导致未定义的类/模块错误,而不是真实的的错误。