ruby-on-rails - 外键和 Mongoid

标签 ruby-on-rails ruby mongodb foreign-keys mongoid

Mongoid 中两个模型之间的关系是否明确需要外键?例如。

class User
  include Mongoid::Document
  has_many :posts
end

class Post
  include Mongoid::Document
  belongs_to :user
  # Is this necessary below?
  field :user_id, type: Integer
end

Mongoid 网站上的文档在讨论关系时没有说明任何字段声明,这就是我问的原因。

最佳答案

不,通常不需要单独的外键字段声明。 Mongoid 将在任何需要它的文档上隐式创建 user_id 字段。它遵循与 ActiveRecord 相同的外键命名约定。

如果这些约定不适合您的模型(例如,如果您有两个关联到同一类),那么您可以覆盖外键名称。例如

belongs_to :user, foreign_key: :friend_id

同样,这与 ActiveRecord 几乎相同(当然没有迁移)。

关于ruby-on-rails - 外键和 Mongoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475913/

相关文章:

ruby-on-rails - 用于门户的 Ruby 技术

ruby-on-rails - Ruby Timeout::timeout 不会触发异常并且不会返回记录的内容

javascript - 在rails app + jquery 中生成的链接错误地定向到本地主机

ruby - 我可以使用默认值在 Ruby 中创建数组吗?

ruby - 如何在 Ruby 中刷新 Capybara URL

python - 在 PyMongo 中存储 datetime.date 类型

ruby-on-rails - rails 4 simpecov 丢失文件

ruby-on-rails - 将辅助模块添加到 Rspec

mongodb - 如何在 MongoDB 中加入两个聚合结果?

mongodb - 是否可以使用 SpringData MongoDB 存储库执行带有分页的任意查询?