ruby-on-rails - Rails 6 jbuilder没有正确渲染数组
问题描述
我在使用 JBuilder on 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
最后 partial_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 的唯一目的
解决方案
更新您的索引以删除render @registration_plates
# GET /registration_plates
def index
@registration_plates = RegistrationPlate.all
end
render @registration_plates
直接渲染_registration_plate.json.jbuilder
而不进入index.json.jbuilder
推荐阅读
- reactjs - Apollo Cache - 为查询字段名称返回未定义类型的对象缺少选择集
- python - Jupyter 无法连接到本地内核(ubuntu 18.04)
- powerbi - Power BI:按序列 ID 记录上次操作(按每个客户 ID 重置)
- openlayers-5 - Openlayers 5 - 动态变化的交互
- java - 超类/子类继承范围验证
- xamarin.forms - 无法解析函数
与“全部链接” - r - 将 cumsum 重置为变量中的值
- java - 如何在 Spring Boot 中使用 ORDER BY?
- c# - 将datagridview的阿拉伯语数据保存在数据库中
- css - 为什么在 CSS 网格中使用 fr 单位会导致 chrome 出现这种行为?