{"record":{"id":"335b56661f13b714","repo":"mongodb/mongoid","slug":"setting-the-discriminator-key-on-a-child-class-is","errorCode":null,"errorMessage":"Setting the discriminator key on a child class is not allowed.","messagePattern":"Setting the discriminator key on a child class is not allowed\\.","errorType":"exception","errorClass":"Mongoid::Errors::InvalidDiscriminatorKeyTarget","httpStatus":null,"severity":"error","filePath":"lib/mongoid/traversable.rb","lineNumber":135,"sourceCode":"    #\n    # @returns [ Mongoid::Document ] The parent document.\n    #\n    # @api private\n    def _parent=(document)\n      @__parent = document\n    end\n\n    # Module used for prepending to the various discriminator_*= methods\n    #\n    # @api private\n    module DiscriminatorAssignment\n      # Sets the discriminator key.\n      #\n      # @param [ String ] value The discriminator key to set.\n      #\n      # @api private\n      def discriminator_key=(value)\n        raise Errors::InvalidDiscriminatorKeyTarget.new(self, superclass) if hereditary?\n\n        _mongoid_clear_types\n\n        if value\n          Mongoid::Fields::Validators::Macro.validate_field_name(self, value)\n          value = value.to_s\n          ::Mongoid::Traversable.__redefine(self, 'discriminator_key', value)\n        else\n          # When discriminator key is set to nil, replace the class's definition\n          # of the discriminator key reader (provided by class_attribute earlier)\n          # and re-delegate to Mongoid.\n          class << self\n            delegate :discriminator_key, to: ::Mongoid\n          end\n        end\n\n        # This condition checks if the new discriminator key would overwrite\n        # an existing field.","sourceCodeStart":117,"sourceCodeEnd":153,"githubUrl":"https://github.com/mongodb/mongoid/blob/0da0e23d71adfbad31128c18e5e2c8c301c6f7c4/lib/mongoid/traversable.rb#L117-L153","documentation":"Error \"Setting the discriminator key on a child class is not allowed.\" thrown in mongodb/mongoid.","triggerScenarios":"Thrown at lib/mongoid/traversable.rb:135 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0da0e23d71adfbad31128c18e5e2c8c301c6f7c4","analyzedAt":"2026-08-23T06:25:47.656Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}