ruby-on-rails - MongoMapper has_many 关联

标签 ruby-on-rails ruby 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

类代码(简化):

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/

相关文章:

mongodb - MongoDB子文档过滤

ruby-on-rails - 如何访问嵌套参数

ruby-on-rails - 如何在 Rails 6 站点中实现 plyr.js?

html - rails haml span 正在结束 "early"- 为什么?

ruby-on-rails - rspec 和 gem bullet test env 失败

MongoDB 集合结构性能

mongodb - 版本 2 中 Mongoid Criteria 的 Map/Reduce 操作

ruby-on-rails - ActiveRecord 迁移不填充 Postgres 物化 View

ruby-on-rails - github-pages 的 bundle 更新失败

ruby-on-rails - 使用 _path 助手时如何对查询字符串进行编码?