0

そんな機能を実現したい。そのため、製品の CRUD を処理する製品コントローラーがあります。また、カテゴリ CRUD を処理するカテゴリ コントローラもあります。

私が達成したいのは、製品を閲覧しているときにアクションを表示しているときに、閲覧バーでそのようなURLを見ることができることです

www.mydomainname.com/products/category_name/product_name

この瞬間、私は持っています。

www.mydomainname.com/products/city-skid-7v3

したがって、ルートで2つのコントローラーを組み合わせる必要があることを意味します。誰かが始めるための例や提案を持っていますか?

4

1 に答える 1

1

あなたが持っている必要がありますroutes.rb

namespace :products do
  resources :categories do
    resources :products
  end

  # to index products without category:
  resources :products, only: :index
end

次に、ルートを使用したすべての場所を変更する必要がviews/controllersあります。たとえば、

link_to product.name, product

次のものに置き換える必要があります。

link_to product.name, [:products, product.category, product]

商品にリンクするときは、カテゴリの URL セグメントも指定する必要があります。

で、が提供されてproducts#indexいるかどうかを確認し、category_id製品をそれぞれフィルタリングできるようになりました。

scope = if params[:category_id]
  Category.find_by_permalink!(params[:category_id])
else
  Product
end
@products = scope.all # add your other scopes here
于 2013-06-27T09:19:43.880 に答える