【发布时间】:2015-01-07 08:16:01
【问题描述】:
模型用户:
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`
【问题讨论】:
-
在 Rails 控制台中使用时该列是否可用?
-
@ArupRakshit,我不应该以某种方式重新加载测试架构吗?
-
你运行
rake db:test:prepare了吗?根据您使用的 Rails 版本,这可能不是必需的,但如果您认为测试架构不是最新的,那可能就是问题所在。 -
我打算在测试环境中的 Rails 控制台中进行测试。 :-)
-
@mrrogers,标签说明我使用的是什么版本的 Rails。
标签: ruby-on-rails ruby ruby-on-rails-4 rspec