アレッ*_*ックス 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)
听起来您的测试数据库尚未正确迁移.尝试运行以下命令:
bundle exec rake db:migrate RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)
..然后尝试再次运行rspec.