JSON API 仕様によると、フィルター クエリ パラメーターを使用して、コントローラーでレコードをフィルター処理する必要があります。フィルター パラメーターが実際に何であるかは実際には指定されていませんが、検索のための複数の条件を含めることができるはずなので、当然行うべきことはハッシュを使用することです。
問題は、さまざまな種類のレコードのコントローラー アクションでかなり頻繁に自分自身を繰り返しているように見えることです。
(複数の特定のレコードを取得するための) ID のリストを含むフィルターのみの場合は、次のようになります。
def index
if params[:filter] and params[:filter][:id]
ids = params[:filter][:id].split(",").map(&:to_i)
videos = Video.find(ids)
else
videos = Video.all
end
render json: videos
end
fetch
ネストされたプロパティ チェックの場合、 orを使用できると思いますandand
が、まだ十分に乾燥していないように見え、異なるコントローラー間で同じことを行っています。
これをもっと見栄えよくして、あまり繰り返さないようにする方法はありますか?