我有这个存储序列化对象的表:
class CachedObject < ActiveRecord::Base
attr_accessible :key, :data
validates_uniqueness_of :key
end
数据列存储由key索引的序列化对象。很简单。我正在运行此代码进行测试:
key = "test"
obj = {"test" => "test"}
row = CachedObject.find_or_create_by_key key
row.data = obj.to_json
row.save
正在创建对象,但它没有保存回数据库。没有错误消息。我在这里做错了什么?
答案 0 :(得分:11)
.save
返回true
或false
。 .save!
会引发错误。如果您需要知道(有些)详细消息出现问题的原因,请使用.save!
。
如果key
不唯一,则不会保存数据,因为模型不会通过验证。尝试运行Model.where(:key => 'test').destroy_all
并重新评估。