Superclass mismatch

Hi,

I’m getting a “superclass mismatch for class TooManyAnswersError” with
the
following code. Other topics I’ve found talk about code being reloaded,
which
I’m sure isn’t happening here.

===========
class QuestionnaireAnswerError < ArgumentError
attr_accessor :question_id

def initialize(*args)
self.question_id = args.shift
super(args)
end
end

class BadAnswerCountError < QuestionnaireAnswerError
end

class TooManyAnswersError < BadAnswerCountError
end

Changing the penultimate line to “class TooManyAnswersError <
QuestionnaireAnswerError” works (although doesn’t do what I want)

Hope someone can help work out what I’m doing wrong,
Gareth

On 05/09/06, Gareth A. [email protected] wrote:

I’m getting a “superclass mismatch for class TooManyAnswersError” with the
following code. Other topics I’ve found talk about code being reloaded, which
I’m sure isn’t happening here.

Since that code appears to be fine on its own, you might need to tell
us a little more about the surrounding code and the environment in
which it’s running. For example, there are some pretty intractable
complications with Rails’s automatic loading/reloading.

Paul.

Gareth A. wrote:

Hope someone can help work out what I’m doing wrong,
Gareth

Changing your example slightly shows what could be the problem:

class QuestionnaireAnswerError < ArgumentError
attr_accessor :question_id

def initialize(*args)
self.question_id = args.shift
super(args)
end
end

class BadAnswerCountError < QuestionnaireAnswerError
end

class TooManyAnswersError < BadAnswerCountError
end

class TooManyAnswersError < QuestionnaireAnswerError
end

It looks like you’ve tried to define the class twice with different
super classes.

HTH