3
我正在研究由Mongodb(使用Mongoid)支持的ruby/rails應用程序。在Rails應用程序的上下文中,所有工作都完美無瑕,但我們也在訪問Rails環境之外的對象,在這種環境下,我無法獲得對象的id,只能以格式中的散列形式返回:訪問ruby中的BSON :: ObjectId的值
{"$oid"=>"4e0005b78ba4db213500001f"}
我已經知道我看到了,因爲我得到的值不僅僅是一個id字符串,而是BSON :: ObjectId類型。除了需要Rails環境我也試過在做這項工作的文件中要求BSON明確:
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require "bson"
我需要簡單地獲得價值爲包含的ID,這似乎是默認的字符串在其他地方,但在這種情況下。奇怪的是,這種行爲只發生在我的開發環境中(我團隊中的其他人沒有這個問題)。
必要的免責聲明,我是新來的Mongodb所以可能會錯過一些真正明顯的東西。
謝謝!
對它調用to_s完全工作。謝謝! –
僅供我自己的啓發:可能是由於Mongoid在Rails環境中自動轉換對象,但是在沒有Mongoid的情況下,我們必須明確地進行轉換? –
我認爲通過要求environment.rb。所以你可以在你的程序中使用Rails,因此可以使用Mongoid。不要忘記,你也可以使用Ruby字符串插值來免費調用to_s方法。 – dogenpunk