у меня есть эта структура для моих новых URL:
module ApplicationHelper
def product_path(product)
unless product.category.nil?
cat = product.category
if cat.ancestry_depth.eql?(2)
product_long_path cat.root, cat.parent, cat, product
else
product_short_path cat.parent, cat, product
end
end
end
end
route.rb file
get "/(*root_id)_(*subcategory_id)_(*category_id)_(*id)" => "products#show", :as => :product_long
get "/(*root_id)_(*category_id)_(*id)" => "products#show", :as => :product_short
и мое шоу-действие
def show
@product = Product.find_by_slug params[:id]
cat = @product.category
raise NotFound unless cat.slug.eql?(params[:category_id]) and cat.root.slug.eql?(params[:root_id])
raise NotFound if cat.ancestry_depth.eql?(2) and !cat.parent.slug.eql?(params[:subcategory_id])
end
Как мне создать перенаправление для "products/:id"
, у меня есть продукты с глубиной категории 2 и 3.