我正在为我的模型使用Rails 3.2和enumerize gem(https://github.com/brainspec/enumerize)
我有一个与项目模型关联的模型用户定义为:
class User < ActiveRecord::Base
has_many :items, dependent: :destroy
end
class Item < ActiveRecord::Base
belongs_to :user
enumerize :type, :in => %w(toys clothing electronics)
end
项目模型后来升级为另外一种类型
class Item < ActiveRecord::Base
belongs_to :user
enumerize :type, :in => %w(toys clothing electronics food)
end
我启动控制台但是当我尝试这样做时:
u = User.first
u.items.create(type:'food')
我收到此查询:
SELECT 1 AS one FROM "items" WHERE ("items"."type" = 'food' AND "items"."user_id" = 1) LIMIT 1
ROLLBACK
当我尝试user.items
我看到一条记录包含所有内容(id,item.type),但是当我退出控制台时,nil记录消失了。
但是,如果我使用先前定义的数组中的类型创建记录,则记录保存得很好。我有什么简单的遗失吗?
答案 0 :(得分:1)
尝试
u.items.create!(type:'food')
如果您的项目未创建,爆炸将引发异常。这应该揭示你的问题。最有可能是验证。