2

テーブルの 3 つの列の名前を変更したところ、突然すべての単体テストと機能テストで同じエラーがスローされ、古い列名のテーブルが見つからないというエラーが発生しました。変更したテーブルとは関係のないモデルのテストでさえ、同じエラーをスローします。

例:

 54) Error:
test_should_show_user(UsersControllerTest):
ActiveRecord::StatementInvalid: SQLite3::SQLException: table answers has no column named id_user: INSERT INTO "a
nswers" ("id_user", "id_survey", "id_question", "answer", "created_at", "updated_at", "id") VALUES ('MyString', 
1, 1, 'MyText', '2012-06-16 17:45:56', '2012-06-16 17:45:56', 980190962)

これは、テーブルを変更するために移行で行ったことです。

class EditAnswersTable < ActiveRecord::Migration
  def self.up
    rename_column :answers, :id_user, :user_id
    rename_column :answers, :id_survey, :survey_id
    rename_column :answers, :id_question, :question_id
  end

  def self.down

    rename_column :answers, :user_id, :id_user
    rename_column :answers, :survey_id, :id_survey
    rename_column :answers, :question_id, :id_question

  end
end

コンソールとEclipseを再起動しましたが、何も変わりませんでした。

アプリ自体はサーバーで正常に動作しているのに、テストごとにこれらのエラーがスローされるのはなぜですか?

私は何をすべきか?前もって感謝します。

4

1 に答える 1

4

フィクスチャファイルをチェックしてください! 列の名前を変更するときはいつでも、通常、フィクスチャを調整して一致させることを忘れていました。これにより、ご覧のように、すべてのテストでエラーが発生します。

それが役立つことを願っています!

于 2012-06-16T18:04:12.733 に答える