Я пытаюсь сделать JSON.mapping
в классе (OtherThing
) на основе объединения двух именованных кортежей.
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