Я задал предыдущий вопрос о сериализации и валидации.Кто-то упомянул об использовании гема JSON, который позволяет мне рассказать моему объекту о том, как сериализовать с помощью метода to_json
, однако Ruby, кажется, действительно выполняет МНОГИЕ сложные вещи, однако, с другой стороны, некоторые действительно простые вещи кажутся довольно сложными,Сериализация - одна из тех вещей.
Я хочу выяснить, есть ли способ получить чистый объект:
class CleanClass
attr_accessor :variable1
attr_accessor :variable2
attr_accessor :variable3
end
cleanObject = CleanClass.new
В идеале, я не хочу испачкать модель,Я просто хочу передать его что-то и сказать ему, каким должен быть тип вывода, и позволить ему работать магически.
Примером может быть что-то вроде:
jsonOutput = MagicSerializer::Json.Serialize(cleanObject)
xmlOutput = MagicSerializer::Xml.Serialize(cleanObject)
yamlOutput = MagicSerializer::Yaml.Serialize(cleanObject)
revertedJsonObject = MagicSerializer::Json.Unserialize(jsonOutput)
revertedXmlObject = MagicSerializer::Xml.Unserialize(xmlOutput)
revertedYamlObject = MagicSerializer::Yaml.Unserialize(yamlOutput)
Я хочу передать что-либо объекту и получить выводимые строки, а затем иметь возможность преобразовать его обратно.
Я знаю, что ActiveModel имеет функцию сериализации, но мне нужно испачкать мой класс, чтобы сделать это, и я нене хочу менять модель, если это возможно.ActiveSupport, кажется, удовлетворяет критериям JSON, так как я могу просто назвать это, и он возьмет объект и выплеснет JSON, но я хотел бы поддерживать другие типы.
Любая дополнительная информация будет полезна!