如何编写基于MySQL VARBINARY的(Ruby)DataMapper自定义类型

时间:2012-11-01 09:03:36

标签: ruby ruby-datamapper

我想在我的数据库中使用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将其保存为二进制/十六进制并以字符串形式加载?

0 个答案:

没有答案