そのままの場合、2番目のオプションは断然です。エレガンスだけでなくSEOにも。
そうは言っても、3 番目と 4 番目の引数を持ち始めるとすぐに、明らかに検索が必要になります。全文検索を選択するか、チェック ボックスを使用した高度な検索のようなものを選択するかは、プロジェクトによって異なります。私は全文検索を好む傾向がありますが、デザインに固執し、これ以上パラメーターを追加しない場合は、次のようになります。
設定したルートに基づいてパラメーターを取得します。
# config/routes.rb
get 'products/:category/:brand', to: 'products#index'
# app/controllers/products_controller.rb
def index
@products = Products.where(category: params[:category]).where(brand: params[:brand])
end
アップデート
カテゴリとブランドの両方がオプションであり、依存していない場合は、カテゴリとブランドをタグ モデルに結合できます。はるかに柔軟です。「商品(/:タグ(/:タグ(/:タグ)))」。