2

データベースの主キーとして UUID を使用したいのですが、列の型として VARBINARY(16) を使用するように勧められました。

これまでのところ、次のものがあります。

module DataMapper
  class Property
      class UUIDKey < String
        key true

        default proc { SecureRandom.uuid.delete('-') }

        writer :private

        def dump(value)
          # add '0x' to save as hex number
          # according to http://kekoav.com/posts/uuid-primary-key-mysql

          '0x' + value unless value.nil?
        end

        def load(value)
          value unless value.nil?
        end

        def typecast(value)
          # how to convert binary value in db?
          load(value)
        end
      end
  end
end

もちろん、DataMapper は上記に基づいて値を文字列として保存します。

DataMapper でこれをバイナリ/16 進数として保存し、文字列としてロードするにはどうすればよいですか?

4

0 に答える 0