【问题标题】:Foreign Keys and Mongoid外键和 Mongoid
【发布时间】:2013-07-04 17:51:42
【问题描述】:

在 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 网站上的文档在讨论关系时没有指出任何字段声明,这就是我问的原因。

【问题讨论】:

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


    【解决方案1】:

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

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

    belongs_to :user, foreign_key: :friend_id
    

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

    【讨论】:

      【解决方案2】:

      型号region.rb

      class Region
        ...
        field :title
        has_many :users
        ...
      

      型号user.rb

      class User
        ...
        belongs_to :reg, class_name: "Region", foreign_key: :reg_id
        ...
      

      您现在可以将region 用于user,如下user.reg,例如:

      = user.reg.title
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多