Презентация! = Форматирование данных.Пожалуйста, рассмотрите следующий пример:
В международном магазине есть страница с информацией о размерах продукта и т. Д.Из-за международного характера магазина эти данные должны быть отформатированы по-разному для каждой локали, в которой посещается магазин. Например: в Европе измерения отображаются в виде метрических значений, тогда как клиенты из США видят те же данные, отформатированные как имперские значения.
Важным примечанием является то, что этот конкретный тип данных не должен храниться несколько раз для каждого формата, хотя, например, следует делать данные, касающиеся цен.Это связано с тем, что цены на продукты do отличаются в зависимости от региона.Измерения и даты, с другой стороны, универсально одинаковы для разных регионов;отличается только способ их отображения и форматирования.Информация всегда должна храниться с как можно меньшим количеством избыточности.
Представление такого магазина (или любого другого приложения на основе MVC) не должно делать ничего, кроме рендеринга данных и определения того, какэти данные представлены пользователю.Сами данные не должны быть изменены каким-либо образом.Именно поэтому информация об измерениях и времени должна храниться в стандартном формате ISO , что упрощает форматирование данных в другие форматы.Измерения должны быть сохранены как метрические значения, например.Фактическое форматирование данных по локали должно происходить в модели после того, как набор данных извлечен из базы данных, предпочтительно со статически доступным классом типа Helper для большей гибкости.После того как данные отформатированы, они возвращаются в контроллер, который затем возвращает их в текущее представление.
Еще одним важным преимуществом этого способа обработки форматирования данных является то, что ваши данные по-прежнему будут правильно отформатированы при попытке иполучить набор данных с помощью действия без представления (то есть объекта JSON, полученного с помощью AJAX).Данные, которые отправляются обратно клиенту любым способом (через «обычный» шаблон HTML или в виде строки JSON / XML), не должны отличаться;только так, как это представлено.