提交 1f432c54 编写于 作者: D Dmitry Lavrov 提交者: Yves Senn

Treat blank UUID values as nil

上级 79f06a91
* Treat blank UUID values as `nil`.
Example:
Sample.new(uuid_field: '') #=> <Sample id: nil, uuid_field: nil>
*Dmitry Lavrov*
* Enable support for materialized views on PostgreSQL >= 9.3.
*Dave Lee*
......
......@@ -330,6 +330,13 @@ def accessor
end
end
class Uuid < Type
def type; :uuid end
def type_cast(value)
value.presence
end
end
class TypeMap
def initialize
@mapping = {}
......@@ -418,10 +425,10 @@ def self.registered_type?(name)
register_type 'json', OID::Json.new
register_type 'cidr', OID::Cidr.new
register_type 'inet', OID::Inet.new
register_type 'uuid', OID::Uuid.new
register_type 'xml', SpecializedString.new(:xml)
register_type 'tsvector', SpecializedString.new(:tsvector)
register_type 'macaddr', SpecializedString.new(:macaddr)
register_type 'uuid', SpecializedString.new(:uuid)
register_type 'citext', SpecializedString.new(:citext)
register_type 'ltree', SpecializedString.new(:ltree)
......
......@@ -50,6 +50,11 @@ def test_data_type_of_uuid_types
assert_not column.array
end
def test_treat_blank_uuid_as_nil
UUIDType.create! guid: ''
assert_equal(nil, UUIDType.last.guid)
end
def test_uuid_formats
["A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11",
"{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册