簡體   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