Saat Anda menggunakan postgres, Anda beruntung:postgres memiliki json Tipe. Ini jauh lebih baik daripada menggunakan serialisasi untuk menyimpan data sebagai beberapa bentuk string yang disandikan, karena postgres memiliki keluarga operator yang kaya yang memungkinkan Anda untuk melakukan kueri terhadap data json itu.
Jika Anda menggunakan postgres 9.4 maka Anda juga dapat menggunakan tipe jsonb. Ini umumnya lebih baik karena menyimpan versi data yang diproses (yaitu tidak harus terus-menerus mem-parsing ulang data) dan memungkinkan pengindeksan.
Rails mendukung ini secara langsung (lihat di sini ), Anda hanya perlu menambahkan kolom bertipe json(b). Jika migrasi Anda berisi
create_table :damages do |t|
t.string :description
t.jsonb :damage_points
end
lalu
Damage.create(damage_points: [{left: 40, top: 99}, {left: 100, top: 35}])
akan membuat baris dengan penyimpanan data poin kerusakan sebagai json. Satu-satunya hal yang harus diperhatikan adalah meskipun data input Anda memiliki simbol sebagai kunci dalam hash, saat mengambil dari database Anda akan selalu mendapatkan string kembali sebagai kunci.