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

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

スポンサーリンク

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

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

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

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

スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!