Rails ActiveRecord对象不保存

时间:2013-09-12 00:01:06

标签: ruby-on-rails activerecord

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

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

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

1 个答案:

答案 0 :(得分:11)

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

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