2011-03-16 29 views
0

查詢Mongoid正在執行沒有道理給我,我想我必須確定一些事情是錯誤的。有沒有跟我mongoid參考宏的問題?

但我不知道是什麼問題

==Model Definition== 
User 
    references_many :questions_about, :class_name=>"Question", :inverse_of => :about_user 

Question 
    references_in :about_user, :class_name=>"User",:inverse_of => :questions_about 

控制檯:

u=User.find("nazroll") 
u.questions_about.map 
db['questions'].find({"user_id"=>#010b}, {}) 

應該已經執行正確的查詢應該是

db['questions'].find({"ABOUT_user_id"=>#010b}, {}) 

這是因爲我在界定t他反的:questions_about爲:about_user

作出的任何幫助是極大的讚賞 - 撕裂我的頭了。謝謝!

回答

0

好吧,它實際上是因爲我用的是舊版本mongoid的,這實際上是嚴重的越野車。

升級到最新版本,全部都很好

0

的referenced_in宏,在這種情況下,添加一個字段,你叫about_user_id對象,它是User被引用的BSON::ObjectIdreferences_many宏只是簡單地使用您調用的User實例中的id來爲該字段生成查詢。

換句話說,您可以將referenced_in視爲belongs_toreferences_many作爲has_many

到底是什麼,你所面臨的問題?它沒有運行正確的查詢嗎?

+0

Hi paul!是的,當我運行=> u.questions_about.map,查詢查找用戶領域,而不是about_user領域。任何想法爲什麼? – 2011-03-16 02:50:35