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. .savetrueまたはを返しますfalse.save!エラーが発生します。(やや) 詳細なメッセージで問題が発生した理由を知る必要がある場合は、 を使用します.save!

  2. が一意でない場合key、モデルは検証に合格しないため、データは保存されません。実行Model.where(:key => 'test').destroy_allして再評価してください。

于 2013-09-12T01:20:07.707 に答える