0

Завершенные тесты в 0.074964s, 13.3398 тестов/с, 0.0000 утверждений/с.Rails 3 «тест истины» единичный тест после сбоев миграции

1) Error: 
test_the_truth(UserTest): 
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'user_id' in 'field list': INSERT INTO `tickets` (`status`, `assignee`, `created_at`, `updated_at`, `id`, `project_id`, `user_id`) VALUES ('MyString', 1, '2013-02-22 12:40:19', '2013-02-22 12:40:19', 980190962, 64810937, 64810937) 
    /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query' 
    /usr/local/rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `block in execute' 

Я создал/строительные леса и все такое. Особенной особенностью является то, что я не помню, чтобы в таблице был столбец user_id. Кроме того, schema.db и все миграции не имеют ничего подобного. У меня нет такой строки (user_id) в моей рабочей области Как рельсы моя колонка должна быть названа так?

По-видимому, в базе данных была такая вещь, как столбец, но она была исправлена ​​каким-то странным беспорядочным способом.

P.S. Если я отключу приборы, связанные с этой таблицей, все будет хорошо.

Что происходит, откуда рельсы читают это имя столбца, потому что, по-видимому, это не из моего рабочего пространства, ни моего db, ни теста db. Так оно, вероятно, хранит его где-то? Есть ли способ исправить этот беспорядок?

+1

Есть ли это в вашем билетном кресле? если он удаляет поле и снова пытается запустить тесты. – Rubyman

ответ

1

Через минуту после этого я спрашиваю, ТАК, я нахожу ответ сам, после нескольких часов ушел в прошлое. Это всегда происходит со мной.

Ответ - это то, что прокомментировал Рубиман - светильники должны быть изменены, чтобы удалить любую устаревшую информацию! Но это было немного более тонким - у меня действительно не было столбца/строки user_id в любом месте в моих светильниках, поскольку у меня его не было в моей рабочей области. НО, поскольку я использую 'belongs_to' и 'has_many', он не будет называться 'user_id' в модели и в любом месте, он будет называться просто «пользователем». Поэтому я искал и обнаружил поле «пользователь» в приборе и должен был удалить его, чтобы исправить имя столбца «user_id» erroneus, сгенерированное в SQL.

Надеюсь, это поможет кому-то.

Смежные вопросы