Seb*_*ian 3 ruby ruby-on-rails mongodb mongomapper
我有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
Run Code Online (Sandbox Code Playgroud)
类代码(简化):
class User
include MongoMapper::Document
# some keys definition
many :models
end
class Model
include MongoMapper::Document
# some keys definitions
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
看来MM不再使用String格式作为FK列,所以
Model.find_by_user_id(user.id.to_s)
Run Code Online (Sandbox Code Playgroud)
应该
Model.find_by_user_id(user.id)
Run Code Online (Sandbox Code Playgroud)
此外,Model.user_id列的数据类型应设置为
key :user_id, Mongo::ObjectID
Run Code Online (Sandbox Code Playgroud)
当我遇到这个问题时,我不得不删除并重新创建我的集合以使其工作 - 换句话说,我曾经将user_id作为String,但是当我在重建数据库时切换它时它只会"占用".幸运的是我正在处理测试数据,因此很容易.
| 归档时间: |
|
| 查看次数: |
3150 次 |
| 最近记录: |