I’m working on a ruby/rails app backed by Mongodb (using Mongoid). Within the context of the Rails application everything works flawlessly but we’re also accessing objects outside of the Rails environment, where I’m having trouble getting the id of an object to return as anything but a hash in the format:
{"$oid"=>"4e0005b78ba4db213500001f"}
I’ve figured out that I’m seeing because I’m getting back a value that’s not just an id string but rather of the type BSON::ObjectId. In addition to requiring the rails environment I’ve also tried requiring bson explicitly in the file that’s doing this work:
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require "bson"
I need to get the value simply as a string containing the id, which seems to be the default everywhere else but in this one case. Oddly this behavior only occurs in my dev environment (the rest of the guys on my team don’t have this problem).
Requisite disclaimer that I’m new to Mongodb so could be missing something truly obvious.
Thanks!
You could try calling to_s on the object. In irb:
If that doesn’t work, can you post your environment.rb?