2016-11-10 58 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