123456789_123456789_123456789_123456789_123456789_

Exception: Mongoid::Errors::AmbiguousRelationship

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, MongoidError, StandardError
Instance Chain:
self, MongoidError, StandardError
Inherits: Mongoid::Errors::MongoidError
Defined in: lib/mongoid/errors/ambiguous_relationship.rb

Overview

This error is raised in case of an ambiguous association.

Examples:

An ambiguous association.

class Person
  include Mongoid::Document

  has_many :invitations, inverse_of: :person
  has_many :referred_invitations, class_name: "Invitation", inverse_of: :referred_by
end

class Invitation
  include Mongoid::Document

  belongs_to :person
  belongs_to :referred_by, class_name: "Person"
end

Constant Summary

MongoidError - Inherited

BASE_KEY

Class Method Summary

Instance Attribute Summary

Instance Method Summary

MongoidError - Inherited

#compose_message

Compose the message.

#translate

Given the key of the specific error and the options hash, translate the message.

#translate_problem

Create the problem.

#translate_resolution

Create the resolution.

#translate_summary

Create the summary.

Constructor Details

.new(klass, inverse, name, candidates) ⇒ AmbiguousRelationship

Create the new error.

Examples:

Create the error.

AmbiguousRelationship.new(
  Person, Drug, :person, [ :drugs, :evil_drugs ]
)

Parameters:

  • klass (Class)

    The base class.

  • inverse (Class)

    The inverse class.

  • name (Symbol)

    The relation name.

  • candidates (Array<Symbol>)

    The potential inverses.

[ GitHub ]

  
# File 'lib/mongoid/errors/ambiguous_relationship.rb', line 36

def initialize(klass, inverse, name, candidates)
  super(
    compose_message(
      "ambiguous_relationship",
      {
        klass: klass,
        inverse: inverse,
        name: name.inspect,
        candidates: candidates.map(&:inspect).join(", ")
      }
    )
  )
end