Предположим, что у меня есть следующие модели:
class Person < ActiveRecord::Base
end
class Bob < Person
def name
'Bob'
end
end
class John < Person
def name
'John'
end
end
Этот код хорошо работает:
# in controller:
@persons = Person.all
# in view:
- @persons.each do |person|
%p= person.name
Но в моем файле спецификации я получаю сообщение об ошибке, когда пишу что-то вроде этого:*
it "display person names" do
Bob.create!
@person = Person.all.first
print @person.name # Error: undefined method 'name' for #<Person:0x...>
end
Но этот код работает нормально:
it "display person names" do
Bob.create!
@person = Bob.all.first
print @person.name
end
Что я делаю не так?
PS Проблема только в файлах RSpec.Тот же код в контроллерах работает хорошо.
ОБНОВЛЕНИЕ: решение найдено!Я должен запустить "rake db: migrate RAILS_ENV = test" (последняя миграция "add_type_to_person" была применена только к базе данных разработки ")