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

アレッ*_*ックス 2 ruby rspec ruby-on-rails ruby-on-rails-4

型号用户:

class User < ActiveRecord::Base

  enum my_enum: [
    :some_value1,
    #....
  ] 
Run Code Online (Sandbox Code Playgroud)

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

def change
  add_column :users, :my_enum, :integer
end
Run Code Online (Sandbox Code Playgroud)

FactoryGirl的夹具:

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

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

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

kar*_*gen 5

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

bundle exec rake db:migrate RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)

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