5

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が、まだ十分に乾燥していないように見え、異なるコントローラー間で同じことを行っています。

これをもっと見栄えよくして、あまり繰り返さないようにする方法はありますか?

4

3 に答える 3