Invalid single-table inheritance type: Rails RSpecテストでエラー

スポンサーリンク

新しく Rails でモデルを作成して、RSpec でモデルのテストを行おうとしたら遭遇したらエラー。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

初めて見るエラー文でしたし、モデルの属性名(DBテーブルのカラム名)で type という名前のものを作成していたので、このエラー文を見てすぐにピンときました。これ、type が ActiveRecord の予約語かなんかだろうな〜と。

調べてみるとその通りで、”type” は ActiveRecord の Single Table Inheritance(単一テーブル継承)という機能で利用される、予約語の属性名の1つらしいです。ということで、マイグレートファイルを編集して属性名を type から他の名前へ変更しました。

そして、マイグレーションをやり直して、test:prepare してテストやり直し。

これで、モデルのテストが通りました。

スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
 
スポンサーリンク

Leave Your Message!