Тъй като използвате 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. Единственото нещо, за което трябва да внимавате, е, че въпреки че въведените ви данни имат символи като ключове в хешовете, при извличане от базата данни винаги ще получавате низове обратно като ключове.