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` 

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

 bundle exec rake db:migrate RAILS_ENV=test 

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