[英]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.