RSpec - 无法写入未知属性(枚举)

时间:2015-01-07 08:16:02

标签: ruby-on-rails ruby ruby-on-rails-4 rspec

模型用户:

class User < ActiveRecord::Base

  enum my_enum: [
    :some_value1,
    #....
  ] 

我还有一个向用户添加my_enum的迁移:

def change
  add_column :users, :my_enum, :integer
end

FactoryGirl的夹具:

FactoryGirl.define do
  factory :user do
    email { Faker::Internet.email }
    password { Faker::Internet.password(10) }
    password_confirmation { password }
    my_enum { nil }
  end 
end

一切正常。但是当我进行测试时,我收到一个错误:

Failure/Error: paid_user = FactoryGirl.create(:user)
     ActiveModel::MissingAttributeError:
       can't write unknown attribute `my_enum`

1 个答案:

答案 0 :(得分:5)

听起来您的测试数据库尚未正确迁移。 尝试运行以下命令:

bundle exec rake db:migrate RAILS_ENV=test

..然后尝试再次运行rspec。