2011-01-27 10 views
14

Estoy trabajando a través del sitio (excelente) railstutorial.org tengo una pregunta básica sobre rspec.rspec, atributo desconocido pregunta

Cuando ejecuto la prueba siguiente en un nuevo modelo de usuario, recibo un mensaje de "atributo desconocido: nombre de usuario" y una prueba fallida.

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 

sintaxis de error es

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)>' 

El campo se encuentra en la tabla de usuarios (cadena), es en el modelo como attr_accessible y en la consola, se puede crear un usuario con exactamente la misma sintaxis en el prueba. Este campo de "nombre de usuario" se agregó a través de una migración después de crear la tabla inicial, ¿hay algún otro archivo que necesite actualizar aquí?

Gracias,

Respuesta

26

corriste rake db:test:prepare?

20

El campo puede no aparecer en la base de datos de prueba, pero presente en su base de datos de desarrollo (que es la razón por la consola está funcionando).

Trate de hacer que sus migraciones están todos al día y luego actualizar la base de datos de prueba:

rake db:migrate 
rake db:test:prepare 
+0

yup, eso fue todo. Gracias – nktokyo