Rails 3.1, почему я получаю ActiveRecord:: UnknownAttributeError: неизвестный атрибут в тесте spec?

Я пытаюсь создать запись Student в тесте, например:

student= Student.create!(:work_phone => "1234567890")

но я получаю эту ошибку:

ActiveRecord::UnknownAttributeError: unknown attribute: work_phone

Однако work_phone определяется в модели Student и переносится.

Вот модель Student:

class Student < ActiveRecord::Base

  validates_length_of :work_phone, :is => 10, :message => 'must be 10 digits, excluding special characters such as spaces and dashes. No extension or country code allowed.', :if => Proc.new{|o| !o.work_phone.blank?}

  attr_accessible:work_phone

end

Любая идея?

Ответ 1

Вы получаете эту ошибку только в тестовой среде. Более конкретно, когда вы запускаете тесты, используя

rake spec

Это может случиться, потому что вы не запускаете свои миграции в тестовых средах. Вы можете сделать это,

rake db:migrate RAILS_ENV=test

или после выполнения миграции на вашем развитии, как показано ниже.

rake db:migrate
rake db:test:prepare 

Ответ 2

Только добавление attr_accessor: work_phone для модели также работает.