Json Jbuilder v / s рендеринг: json метод - PullRequest
3 голосов
/ 27 февраля 2020

При попытке отправить json ответов, какие преимущества можно получить, используя метод render по сравнению с jbuilder или наоборот.

Например:

render :json=> @boats

v / s

В индексе. json .jbuilder

json.array! @boats do |boat|   
    json.boat_name boat.name 
end

Я пытался использовать оба способа, но не смог найти какое-либо существенное преимущество одного над другим. Причиной может быть то, что мое приложение маленькое. Поэтому я хотел знать, есть ли какая-либо разница между ними в крупномасштабных приложениях.

1 Ответ

0 голосов
/ 27 февраля 2020

Jbuilder предоставляет DSL для генерации JSON. Он включает в себя шаблонизатор, который позволяет создавать сложные ответы с помощниками и условиями.

пример

Мы можем добавить это без использования JBuilder, добавив render

def show
  @article = Article.find(params[:id])
   render json: @article 
end

Теперь, когда мы перезагрузим страницу, мы увидим JSON представление статьи.

{"author_id":1, title:"hello", etc}

enter image description here, если вы хотите настроить Ответ может использовать as_json как

   format.json { render json: @article.as_json(only: [:id, :name, :content], include: [:author, {comments: {only:[:id, :name, :content]}}]) }

imageas_json">

Использование JBuilder Это работает, но код, который мы использовали, не не очень красиво Мы могли бы переопределить as_ json в модели, но это было бы не намного красивее.

json.id @article.id
json.name @article.name

enter image description here

можно использовать любые настройки в JBuilder

Спасибо за railscasts можете прочитать для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...