lundi 24 octobre 2016

ActiveRecord::Fixture::FixtureError: table "users" has no column named "status"

I'm testing my UsersController which make users activated and deactivated. I'm use fixtures and when I start my tests, I see error: ActiveRecord::Fixture::FixtureError: table "users" has no column named "status". The same mistake I see on the "locale" field, but on the "role" field, all is well, why?

P.S. Seeds work well

Migrate file (db/migrate/20160915110112_create_users.rb):

class CreateUsers < ActiveRecord::Migration[5.0]
 def change
  create_table :users do |t|

  t.string :firstname,           null: false
  t.string :lastname,            null: false

  t.string :email,               null: false

  t.string :login, index: true,  null: false
  t.string :password,            null: false

  t.integer :genres,             null: false

  t.integer :role,               null: false

  t.integer :status,             null: false

  t.integer :locale,             null: false

  t.datetime :created_at,        null: false
  end
 end
end

User model (app/models/user.rb):

class User < ApplicationRecord

    validates :login,     presence: true, uniqueness: true
    validates :email,     presence: true, uniqueness: true
    validates :genres,    presence: true, numericality: true
    validates :role,      presence: true

    enum status: { activated: 1, deactivated: 2 }

    enum locale: { ru: 1, en: 2 }

    enum role: { creator: 1, admin: 2 }

    before_create do
      self.firstname.capitalize!
      self.lastname.capitalize!
      self.password = password_generate
      self.status = :activated
      self.locale = :ru
    end

   ...

    private

    def password_generate
      @password = SecureRandom.base64(8)
      BCrypt::Password.create(@password)
    end

  end

fixture file (spec/fixtures/users.yml):

alex_foo:
  id: 1
  firstname: Alex
  lastname: Foo
  email: alex@foo.com
  login: foo
  password: $2a$10$E5lj6OpvHwJ4ry3zHt7QrOl0cYgeuWwbvSKXtNZeGAvPIxRVnKnmW
  genres: 46
  role: 1
  status: 1
  locale: 1
  created_at: 2016-10-19 08:16:07.539325

li_huan:
  id: 2
  firstname: Li
  lastname: Huan
  email: li@huan.chi
  login: huan
  password: $2a$10$E5lj6OpvHwJ4ry3zHt7QrOl0cYgeuWwbvSKXtNZeGAvPIxRVnKnmW
  genres: 54
  role: 2
  status: 1
  locale: 1
  created_at: 2016-10-19 08:16:07.539325

seeds.rb:

User.create(
  firstname: 'init',
  lastname: 'user',
  login: 'init',
  email: 'example@mail',
  genres: 511,
  role: 1
)

Aucun commentaire:

Enregistrer un commentaire