0

ウェブサイトで製品をフィルタリングするには、次の 2 つの方法があります。

www.expamle.com/products?category=cars&brand=hot_wheels
また :
www.expamle.com/products/car/hot_wheels

ベストプラクティスとは何ですか?その理由は何ですか?

2番目のソリューションを適用した場合、渡されたパラメーターのタイプが or であることをどのように知ることができcategoryますbrandか?

ありがとう。

4

1 に答える 1

3

そのままの場合、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

アップデート

カテゴリとブランドの両方がオプションであり、依存していない場合は、カテゴリとブランドをタグ モデルに結合できます。はるかに柔軟です。「商品(/:タグ(/:タグ(/:タグ)))」。

于 2013-02-03T15:27:37.830 に答える