Rails 3.1, почему я получаю ActiveRecord :: UnknownAttributeError: unknown атрибут в тесте спецификации? - PullRequest
10 голосов
/ 04 января 2012

Я пытаюсь создать запись 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

Есть идеи?

Ответы [ 2 ]

28 голосов
/ 06 января 2012

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

rake spec

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

rake db:migrate RAILS_ENV=test

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

rake db:migrate
rake db:test:prepare 
1 голос
/ 25 апреля 2012

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

...