Rails 3.1: Jbuilder рендеринг пустых представлений - PullRequest
1 голос
/ 03 апреля 2012

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

Код контроллера:

@placements = Placement.all
respond_to do |format|
  format.html
  format.json
end

Представление Jbuilder (index.json.builder):

Jbuilder.encode do |json|
  json.array!(@placements) do |json, placement|
    json.id placement.id
    json.name placement.name
  end
end

Посещение http://localhost:3000/placements.json приводит к пустой странице. Удаление блока формата respond_to не помогает. Если я использую следующий код в моем контроллере, я получаю вывод, но это явно не вывод Jbuilder.

respond_to do |format|
  format.html
  format.json {render json: @placements}
end

Кто-нибудь еще видел эту проблему?

Ответы [ 3 ]

1 голос
/ 04 апреля 2012

@ Робин. Рендерился не тот шаблон, но у меня неправильное расширение.Я использовал builder вместо jbuilder.

0 голосов
/ 26 февраля 2017

То же выпуск в спецификациях рельсов с рельсами jbuilder 2.6.0 5.0.0 и существующими представлениями.

Предлагаемые в упомянутых решениях проблем:

Решено добавлением типа рендеринга с коллекцией или ресурсом

, например, для index действие замените:

render :index

на:

render :index, json: @collection

Или решено путем настройки rspecкак это:

# spec/spec_helper.rb
RSpec.configure do |config|
  config.render_views = true
end

Или

class ApplicationController < ActionController::API
  include ActionView::Rendering
end
0 голосов
/ 14 апреля 2012

Я думаю, вам нужно удалить F

respond_to do |format|
  format.html
  format.json {render json: @placements}
end
...