У меня проблема с правильным отображением массива с помощью JBuilder на Rails 6 (режим только API).
У меня в основном список регистрационных номеров, которые я хочу получить с помощью запроса API
Мое представление индекса выглядит так:
# frozen_string_literal: true
json.array! @registration_plates,
partial: 'registration_plates/registration_plate',
as: :registration_plate
Мое представление шоу выглядит так:
# frozen_string_literal: true
json.partial! 'registration_plates/registration_plate',
registration_plate: @registration_plate
И, наконец, частичное _registration_plate.json.jbuilder
очень просто:
# frozen_string_literal: true
json.id registration_plate.id
json.plate registration_plate.plate.to_s
Я получаю нормальный ответ от сервера:
Но вместо массива я получаю серию объектов JSON
У кого-нибудь была похожая проблема, или у вас есть идеи, как ее решить?
Чем вы заранее.
РЕДАКТИРОВАТЬ
Кроме того, мой контроллер настроен для рендеринга jbuilder, а не json
# GET /registration_plates
def index
@registration_plates = RegistrationPlate.all
render @registration_plates
end
# GET /registration_plates/1
def show
render @registration_plate
end
И если я изменю действие индекса так, чтобы оно выглядело как
def index
@registration_plates = RegistrationPlate.all
render json: @registration_plates.to_json(only: %i[id plate])
end
, я получаю правильное значениевывод, но тогда я не поддаюсь единственной цели jbuilder