Ответ 1
Вы запустили rake db:test:prepare
?
Я работаю через (отличный) сайт railstutorial.org, у вас есть основной вопрос о rspec.
Когда я запускаю тест ниже в новой модели пользователя, я получаю сообщение "неизвестный атрибут: имя пользователя" и неудачный тест.
before(:each) do
@attr = { :lname_e => "User", :fname_e => "Test", :email => "[email protected]", :username => "testUser" }
end
it "should create a new instance given valid attributes" do
User.create!(@attr)
end
Синтаксис ошибок
Failures:
1) User should create a new instance given valid attributes
Failure/Error: User.create!(@attr)
unknown attribute: username
# ./spec/models/user_spec.rb:11:in `block (2 levels) in <top (required)>'
Поле находится в таблице пользователей (строка), в модели как attr_accessible, а в консоли я могу создать пользователя с точно таким же синтаксисом в тесте. Это поле "имя пользователя" было добавлено через миграцию после создания начальной таблицы, есть ли другой файл, который мне нужно обновить здесь?
Спасибо,
Вы запустили rake db:test:prepare
?
Поле может отсутствовать в тестовой базе данных, но присутствует в вашей базе данных разработки (поэтому консоль работает).
Попробуйте убедиться, что ваши миграции обновлены, а затем обновите тестовую базу данных:
rake db:migrate
rake db:test:prepare