Sha256: df87daa3e2bc7665434fbc934ab939967714f23dcafab96533eb1ef80d77decd

Contents?: true

Size: 1.56 KB

Versions: 29

Compression:

Stored size: 1.56 KB

Contents

# frozen_string_literal: true

module ForeignKeySpec
  class Company
    include Mongoid::Document

    field :c, type: String
    has_many :emails, class_name: 'ForeignKeySpec::Email',
      foreign_key: 'c_ref', primary_key: 'c'
    has_one :founder, class_name: 'ForeignKeySpec::Founder',
      foreign_key: 'c_ref', primary_key: 'c'
  end

  class Email
    include Mongoid::Document

    field :c_ref, type: String
    belongs_to :company, class_name: 'ForeignKeySpec::Company',
      foreign_key: 'c_ref', primary_key: 'c'
  end

  class Founder
    include Mongoid::Document

    field :c_ref, type: String
    belongs_to :company, class_name: 'ForeignKeySpec::Company',
      foreign_key: 'c_ref', primary_key: 'c'
  end

  class Animal
    include Mongoid::Document

    field :a, type: String
    has_and_belongs_to_many :zoos, class_name: 'ForeignKeySpec::Zoo',
      foreign_key: 'z_refs', primary_key: 'z'
  end

  class Zoo
    include Mongoid::Document

    field :z, type: String
    has_and_belongs_to_many :animals, class_name: 'ForeignKeySpec::Animal',
      foreign_key: 'a_refs', primary_key: 'a'
  end

  class ScopedCompany
    include Mongoid::Document

    field :c, type: String
    has_many :emails, class_name: 'ForeignKeySpec::ScopedEmail',
      foreign_key: 'c_ref', primary_key: 'c'
  end

  class ScopedEmail
    include Mongoid::Document

    field :c_ref, type: String
    belongs_to :company, class_name: 'ForeignKeySpec::ScopedCompany',
      foreign_key: 'c_ref', primary_key: 'c'

    field :s, type: String
    default_scope -> { where(s: 'on') }
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
mongoid-8.0.10 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.10 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.9 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.0.9 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.8 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.7 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.6 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.0.8 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.5 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.4 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.0.7 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.3 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.2 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.0.6 spec/integration/associations/foreign_key_spec_models.rb
mongoid-7.5.4 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.1 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.0.5 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.1.0 spec/integration/associations/foreign_key_spec_models.rb
mongoid-7.5.3 spec/integration/associations/foreign_key_spec_models.rb
mongoid-8.0.4 spec/integration/associations/foreign_key_spec_models.rb