1. ホーム
  2. ruby-on-rails

[解決済み] Ruby on Rails 3 : "superclass mismatch for class ...".

2022-02-25 02:50:49

質問

プラットフォーム Mac OSX 10.6

ターミナルで "rails c" と入力し、Ruby コンソールを起動します。

Ruby on Rails 3 のチュートリアルに沿って、クラスを構築していきます。

class Word < String 
  def palindrome? #check if a string is a palindrome
    self == self.reverse
  end
end

エラーメッセージが表示されるのですが。

TypeError: superclass mismatch for class Word
    from (irb):33
    from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:44:in `start'
    from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands/console.rb:8:in `start'
    from /Users/matthew/.rvm/gems/ruby-1.9.2-p180@rails3tutorial/gems/railties-3.0.5/lib/rails/commands.rb:23:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

チュートリアルでは問題がないことが示されており、私はコードが問題ないことを知っています。私は他の関連する質問を検索しましたが、それらはすべてRuby 2から3への移行またはerb vs erubyに関連していました。

どのように解決するのですか?

すでに Word クラスが別の場所で定義されています。Rails 3アプリ内で試しましたが、再現できませんでした。

を作成していない場合、2つ目の Word クラスは、Gems またはプラグインのいずれかですでに定義されている可能性があります。