私のサーバサイドデータテーブルの機能を拡張しようとしています。私はいくつかの余分なフィルターを私のコントローラー/データテーブルに渡します。これを結果のフィルターに使用します。現在のところ、私のモデルでは、スコープを適用する前にパラメータが存在するかどうかをテストしていますが、フィルタのリストが大きくなるif/elseシナリオが多いので、これが最良の方法であるとは確信していません。これを「レールの道」としてどうすればいいですか?条件付きチェーンスコープを設定する最良の方法
if params[:store_id].present? && params[:status].present?
Order.store(params[:store_id]).status(params[:status])
elsif params[:store_id].present? && !params[:status].present?
Order.store(params[:store_id])
elsif !params[:store_id].present? && params[:status].present?
Order.status(params[:status])
else
Order.joins(:store).all
end
ANSWER:この作業コードに 組み合わせの答え:
query = Order.all
query = query.store(params[:store_id]) if params[:store_id].present?
query = query.status(params[:status]) if params[:status].present?
query.includes(:store)
なぜ3 difを処理するには1つのAPIエンドポイントを使用する必要がありますかなぜ3エンドポイントを代わりに使用しないのですか? – songyy
それはどういう意味ですか?私はストア/ステータスで注文をフィルタリングしています。 – stoerebink
Ahh OK私の悪い..私はいくつかの操作をしていたと思った – songyy