Как визуализировать JSON с JBuilder в Rails 3.2

Я пытаюсь интегрировать JBuilder в проект Rails 3.2. Я установил гем, и я написал файл JBuilder в app/views/books/index.json.jbuilder,

Вот мое действие индекса:

  def index

    @books = Book.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @books }
    end
  end

Это похоже на вызов по умолчанию as_json метод Book оказать ответ. Что мне нужно изменить, чтобы Rails вместо этого использовал мой шаблон JBuilder?

1 ответ

Решение

Уберите блок, на который вы переходите format.json, Вы заставляете его игнорировать файл jbuilder и возвращать результат json: @books в ответ. Если вы оставите блок вне:

respond_to do |format|
  format.html # index.html.erb
  format.json # no block here
end

Затем Rails вернется к обработке ответа по умолчанию и найдет шаблон в вашей директории представления, найдет файл jbuilder и отобразит его в качестве ответа.

Другие вопросы по тегам