我对 mongomapper 关联有疑问。我有一个类名 User 和另一个类名 Model。用户有很多模型但是...
user = User.first
=> <User ...
user.models
=> []
Model.find_by_user_id(user.id.to_s)
=> <Model ...
Model.find_by_user_id(user.id.to_s).user == user
=> true
类代码(简化):
class User
include MongoMapper::Document
# some keys definition
many :models
end
class Model
include MongoMapper::Document
# some keys definitions
belongs_to :user
end
我做错了什么?
最佳答案
看来 MM 不再对 FK 列使用 String 格式,所以
Model.find_by_user_id(user.id.to_s)
应该是
Model.find_by_user_id(user.id)
此外,Model.user_id 列的数据类型应设置为
key :user_id, Mongo::ObjectID
当我遇到这个问题时,我不得不删除并重新创建我的集合以使其正常工作 - 换句话说,我曾经将 user_id 作为一个字符串,但它只会在我重建时切换它时“接受”我的数据库。幸运的是,我正在处理测试数据,所以这很容易。
关于ruby-on-rails - MongoMapper has_many 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024069/