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}, {})
这是因为我将:questions_about的反义定义为:about_user
非常感谢任何提供的帮助 - 撕裂我的头。谢谢!
答案 0 :(得分:0)
在这种情况下,referenced_in宏会向您的对象添加一个名为about_user_id
的字段,它是被引用的BSON::ObjectId
的{{1}}。 User
宏只是使用您调用它的references_many
实例中的id
为该字段生成查询。
换句话说,您可以将User
视为referenced_in
,将belongs_to
视为references_many
。
您面临的问题究竟是什么?它没有运行正确的查询吗?
答案 1 :(得分:0)
好吧,实际上是因为我使用的是较早版本的mongoid,实际上是非常严重的错误。
升级到最新版本,一切都很好