postgresを使用しているので、幸運です。postgresにはネイティブの json タイプ。 postgresにはそのjsonデータに対してクエリを実行できる豊富な演算子ファミリがあるため、これは、シリアル化を使用してデータを何らかの形式のエンコードされた文字列として格納するよりもはるかに優れています。
postgres 9.4を使用している場合は、jsonbタイプを使用することもできます。これは、処理されたバージョンのデータを保存し(つまり、データを何度も再解析し続ける必要がない)、インデックスを許可するため、一般的に優れています。
Railsはこれをすぐにサポートします(こちら を参照) )、タイプjson(b)の列を追加する必要があります。移行に
が含まれている場合create_table :damages do |t|
t.string :description
t.jsonb :damage_points
end
次に
Damage.create(damage_points: [{left: 40, top: 99}, {left: 100, top: 35}])
ダメージポイントデータストアをjsonとして行を作成します。注意すべき唯一のことは、入力データにはハッシュ内のキーとして記号が含まれていますが、データベースからフェッチすると、常に文字列がキーとして返されることです。