Неинициализированная константа BSON::Document
Я пытаюсь выполнить код ruby на Ubuntu 14.04 и при выполнении получения ошибки,
'': неинициализированная константа 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
Любая идея, что мне здесь не хватает. Любой указатель будет оценен.
1 ответ
Похоже, вы пытаетесь выполнить этот код "в вакууме".
require
метод вернется молча false
если не удалось. Кроме того, для выполнения кода вам нужно установить соответствующие гемы. Прежде всего, беги
$ gem install bson
$ gem install mongo
в твоей раковине. Теперь повторите попытку с вашим сценарием. Драгоценные камни выше должны заставить все работать хорошо. Если нет, вам нужно настроить среду ruby, есть много уроков по этому вопросу.
Также может быть проблема с системным / локальным ruby (строка hashbang диктует выполнение системного.) Попробуйте удалить эту строку и запустить скрипт с
$ ruby script_name.rb