lib/mongoid/errors/invalid_set_polymorphic_relation.rb
# frozen_string_literal: true
# rubocop:todo all
module Mongoid
module Errors
# Raised when trying to set a polymorphic "references in" association to a
# model with multiple "references many/one" associations pointing to that
# first model.
#
# @example Invalid setting of a polymorphic association.
# class Face
# include Mongoid::Document
#
# has_one :left_eye, class_name: "Eye", as: :eyeable
# has_one :right_eye, class_name: "Eye", as: :eyeable
# end
#
# class Eye
# include Mongoid::Document
#
# belongs_to :eyeable, polymorphic: true
# end
#
# eye = Eye.new
# face = Face.new
# eye.eyeable = face # Raises error
class InvalidSetPolymorphicRelation < MongoidError
# Create the new invalid set polymorphic association error.
#
# @example Create the error.
# InvalidSetPolymorphicRelation.new
def initialize(name, klass, other_klass)
super(compose_message("invalid_set_polymorphic_relation", { name: name, klass: klass, other_klass: other_klass }))
end
end
end
end