10

我有这个存储序列化对象的表:

class CachedObject < ActiveRecord::Base
  attr_accessible :key, :data
  validates_uniqueness_of :key
end

数据列存储一个按键索引的序列化对象。很简单。我正在运行这段代码来测试:

key = "test"
obj = {"test" => "test"}
row = CachedObject.find_or_create_by_key key
row.data = obj.to_json
row.save

该对象正在创建,但它没有保存回数据库。没有错误信息。我在这里做错了什么?

4

1 回答 1

20
  1. .save返回truefalse.save!引发错误。如果您需要了解(有些)详细消息出现问题的原因,请使用.save!.

  2. 如果key不是唯一的,数据将不会被保存,因为模型不会通过验证。尝试运行Model.where(:key => 'test').destroy_all并重新评估。

于 2013-09-12T01:20:07.707 回答