我想实现这样的功能。所以我有products控制器,它处理产品的CRUD。我还有类别控制器,它可以处理类别增删改查。
我想要实现的是,当我在浏览产品时显示动作,在浏览栏中我可以看到这样的url。
www.mydomainname.com/products/category_name/product_name此时此刻,我有。
www.mydomainname.com/products/city-skid-7v3所以这意味着我需要在路由中组合两个控制器。有没有人可以从例子或建议开始呢?
发布于 2013-06-27 17:19:44
你的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 herehttps://stackoverflow.com/questions/17339268
复制相似问题