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 для модели также работает.