Как преобразовывать для сохранения данные, приходящие с клиентской стороны?

Существует API-шка в виде рельсового приложения, и клиентское приложение на Angular.js.

Стоит ли мне стремиться достигать состояния, когда данные с клиента приходят 1 к 1, как нужно, без надобности их маппинга.
Если нет, то как преобразовывать, чтобы было DRY и вообще красиво?

Допустим, с клиента приходит хэш, содержащий такие данные:
{
"name": "sample',
"tags": [
"non",
"adipisicing",
"deserunt",
"nulla",
"do",
"aute",
"enim"
]
}

На клиенте придется делать что-то типа:

AR::Transaction do
 if record.save
    tags.each do {|tag| record << tag.find_or_create_by(tag)}
 end
end


Можно сделать какой-нибудь простенький Form object.

Какой подход лучше использовать? Или все же стараться и добавиваться маппинга данных 1к1 ?
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 1
madmatvey
@madmatvey
Руки, ноги, голова. В наличии и под заказ.
Используя, например, Postgres и JSONB можно сохранять любой хеш и обращаться к конструкциям внутри него как вам угодно. Об этом же вопрос ваш?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы