Подтвердить что ты не робот

Почему эскизы Rails 4 создают файлы json.jbuilder?

Я создал новый проект rails 4 (rc1), используя rails new, и создал эшафот с помощью rails g scaffold.

Как и ожидалось, он создал миграцию, контроллер и все необходимые файлы представлений.

Он также создал show.json.jbuilder и index.json.jbuilder.

Я предполагаю, что это поможет генерировать json из моделей. Контроллер также содержит вызовы format.json.

Вопрос: для чего нужен json и какая часть сгенерированного приложения использует json? Это не похоже (для меня), что представления используют json для визуализации чего-либо, кажется, что они отображаются на стороне сервера (переменные @model используются в представлениях для получения содержимого).

Ребра (http://edgeguides.rubyonrails.org/) не видят упоминания jbuilder и почему он там нуждается.

Спасибо заранее! Пожалуйста, дайте мне знать, если я смогу прояснить вопрос.

4b9b3361

Ответ 1

Чтобы ответить на "почему":

Актуальность строительных лесов в Rails несколько сместилась за эти годы. Он больше не предназначен для создания необходимого кода, который не может быть легко абстрагирован. Сегодня это в основном образовательный инструмент, который предоставляет вам несколько динамичный пример и демонстрирует лучшие практики. (Это также причина, почему они посыпают комментарии с спорной полезностью)

Другими словами, сгенерированные файлы должны сказать вам:

Если вы собираетесь использовать Rails, вот хороший способ, как вы могли это сделать.

или в вашем конкретном случае:

Если вы собираетесь использовать JBuilder, вот хороший способ генерации JSON.

Они не собираются говорить: "Вот как это должно быть сделано". или "Вы должны сохранить все сгенерированные вещи, потому что это необходимо".

Ответ 2

Как уже говорилось, Rails 4, похоже, генерирует файлы как способ создания шаблона для ответа на запрос JSON. Итак, скажем, у вас есть "подмосковная" модель Car, тогда она ответит HTML-страницей и подробным видом автомобиля (id 1), если вы идете /car/1.

Затем, если вы перейдете к /car/1.json, он отобразит файл show.json.jbuilder. Также кажется, что существует какой-то автоматический механизм, так как метод show пуст при создании лесов:

def show
end

Ответ 3

Генератор эстакад Rails 4 создает файлы jbuilder, потому что gem 'Jbuilder' находится в Gemfile. Если вы удалите это из своего Gemfile, эта функция остановится.

Ответ 4

Jbuilder gem включен в RoR 4 по умолчанию. Вы можете прочитать об этом на своей странице. Об этом сообщается: Railscasts # 320.

Ответ 5

В настоящее время Angular или аналогичные фреймворки популярны или если вы пишете API для мобильного приложения. Это представление JSON-builder можно использовать. Там мы не будем использовать Rails-представления. Для всего остального API JSON стал стандартным форматом. Полезно иметь как HTML-представление, так и JSON, созданное автоматически с помощью эстакады рельсов.