あなたはArray.packとString.unpackメソッドに興味があるかもしれません。それのためにルビーのマニュアルを参照してください:タイプri Array.pack
あなたはそれを解凍/パックするアクセサを追加し、あなたのデータベース「packed_data」属性を使用することもできます。
def data
packed_data.unpack('....')
end
def data=(v)
self.packed_data = v.pack('....')
end
それをより便利にするために、あなたは可能変数にアンパックフォームを保存していますが、.reload
before_validation :pack_data
UNPACK_FORMAT = '.....' # See ri Array.pack
def data
@data ||= packed_data.unpack(UNPACK_FORMAT)
end
def data=(v)
@data = v
end
def reload(options=nil)
@data = nil
super
end
def pack_data
self.packed_data = self.data.pack(UNPACK_FORMAT)
true # Because we are in a before_.. callback
end
を呼び出すときに解凍/データをパックするために使われるマジック文字列の形式が依存するようにあなたは、ときpacked_data
属性の変更、それをクリアするために覚えていますあなたが持っているデータあなたの配列内のe。ドキュメントは、あなたが正しいものを選択するのに役立ちます。
私はpackとunpackのフォーマットは同じであると信じていますが、私をあまり信用していません。 ;)