更改表的列名后,所有单元和功能测试出错

时间:2012-06-16 17:52:05

标签: ruby-on-rails-3 activerecord sqlite

我重命名了一个表的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

我重新启动了控制台并且也发生了日食,但没有任何改变。

应用程序本身在服务器中工作正常,那么为什么测试会为每次测试抛出这些错误?

我该怎么办?提前谢谢。

1 个答案:

答案 0 :(得分:4)

检查您的灯具文件!每当我重命名列时,我通常会忘记调整我的灯具来匹配。这会导致每次测试都出错,就像你看到的一样。

希望有所帮助!