rspec, вопрос неизвестного атрибута - PullRequest
14 голосов
/ 27 января 2011

Я работаю через (отличный) сайт railstutorial.org, у меня есть основной вопрос по rspec.

Когда я запускаю тест ниже для новой пользовательской модели, я получаю «неизвестный атрибут: имя пользователя»сообщение и неудачный тест.

  before(:each) do
   @attr = { :lname_e => "User", :fname_e => "Test", :email => "user@example.com", :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 и в консоли я могусоздать пользователя с точно таким же синтаксисом в тесте.Это поле "username" было добавлено через миграцию после создания начальной таблицы, есть ли какой-то другой файл, который мне нужно обновить здесь?

Спасибо,

Ответы [ 2 ]

29 голосов
/ 27 января 2011

Вы пробежали rake db:test:prepare?

21 голосов
/ 27 января 2011

Поле может отсутствовать в вашей тестовой базе данных, но присутствует в вашей базе данных разработки (именно поэтому консоль работает).

Попробуйте убедиться, что все ваши миграции актуальны, и затем обновите тестбаза данных:

rake db:migrate
rake db:test:prepare
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...