繁体   English   中英

如何在Ruby On Rails中为单个结果返回一个JSON数组?

[英]How to always return a JSON array for single result in Ruby On Rails?

在Ruby On Rails中始终从API控制器返回JSON数组的最简单或预期的方法是什么?

假设我有以下控制器操作:

def index
  render json: Entry.all.includes(:user).to_json(include: :user) if current_user.has_role?(:administrator)
  render json: Entry.find_by(user: current_user).to_json(include: :user)
end

返回条目列表。 有时结果只有一个条目,因此to_json()不会创建JSON数组而是创建JSON对象。

这使API文档和客户端实现等所有内容变得复杂,因为我们必须测试空结果,单个结果和数组结果。

怎么可能总是在这里返回一个JSON数组?

Stack:Ruby 2.5.3; Rails 5.2.2

尝试改变这个

render json: Entry.find_by(user: current_user).to_json(include: :user)

render json: Entry.where(user: current_user).to_json(include: :user)

find_by返回一个对象,而where一个ActiveRecord::Relation

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM