私はRailsにかなり慣れていないので、これに間違った角度からアプローチしていると感じていますが、ここにあります...車両を表示するリストページがあり、ユーザーが結果をフィルタリングできるフィルター機能を追加しようとしていますvehicle_size、メーカー、および/または payment_options ごと。
3 つの選択フォーム フィールドを使用して、ユーザーは :vehicle_size、:manufacturer、および/または :payment_options パラメーターの値を設定し、これらの値を使用しているコントローラーに送信できます。
@vehicles = Vehicle.order("vehicles.id ASC").where(:visible => true, :vehicle_size => params[:vehicle_size] )
一種のクエリ。これは個々のパラメーターに対して正常に機能します (上記は正しい車両サイズの結果を返します) が、パラメーターの 1 つが空白のままになっている場合、結果を取得せずに 3 つのパラメーターすべてを渡すことができるようにしたいと考えています..
どのパラメーターが設定されているかに応じて異なる where ステートメントを定義する if ステートメントを作成するプロセスを経ずにこれを行う方法はありますか? フィルター オプションを追加すると、これは非常に面倒になる可能性があります。
@vehicles = Vehicle.order("vehicles.id ASC").where(:visible => true, if(params.has_key?(:vehicle_size):vehicle_size => params[:vehicle_size], end if(params.has_key?(:manufacturer):manufacturer => params[:manufacturer] end )