對於我從規範調用的類,我有一個類方法Juxtaposition.generate_for(position)
。該方法設置地圖縮小並調用它map_reduce(map, reduce).out(merge: "juxtapositions")
當立即訪問結果時,方法的不同行爲
位置變量在let塊之前的let中定義。
在執行,如果我只需撥打上方的功能(這是真的只是調用地圖減輕相關的位置數據),然後像下面的測試失敗:
Juxtaposition.count.should eq 1
Juxtaposition.first.value.should eq values
但是,如果我叫
Juxtaposition.generate_for(positions).first["value"].should eq values
兩次測試之前,他們都通過。當我使用pry並從那裏調用generate_for
方法時,上述兩個測試也會通過。
我應該知道在mongoid中是否有一些奇怪的行爲縮小了呢?或者,有沒有辦法強制結果進入我以後的查詢。
我想這意味着generate_for正在返回與您所期望的不同的東西。 –
是的,它不會像預期的那樣返回任何東西或保存到mongodb中,除非我在生成時特別要求它的值。 – iterion
mongo的哪個版本? –