【发布时间】:2019-06-25 00:33:22
【问题描述】:
我正在尝试基于两个命名元组的合并在一个类 (OtherThing) 中执行 JSON.mapping。
class Thing
MAPPING = {
id: {type: String, default: UUID.random.to_s},
email: {type: String, nilable: true},
}
JSON.mapping({{MAPPING}})
end
class OtherThing
MAPPING = Thing::MAPPING.merge({
address: String,
city: String,
zip: {type: String, nilable: true},
latitude: {type: Float64, nilable: true},
longitude: {type: Float64, nilable: true},
})
JSON.mapping({{MAPPING}})
end
这会根据我组织代码的方式产生错误。
一个错误:
Error expanding macro
FOR expression must be an array, hash or tuple literal, not Call:
Thing::MAPPING.merge
{% for key, value in _properties_ %}
^~~~~~~~~~~~
另一个可能的错误:
undefined macro method 'NamedTupleLiteral#merge' 中的JSON.mapping OtherThing
【问题讨论】:
标签: crystal-lang