我有一个分类模型和一个产品模型。
Category has_many products
和
Product belongs_to Category
我希望我的路线是这样的:
/:category_type/:category_name/ opens Product#index
/:category_type/ opens Category#index
/ opens Category#index
有没有办法用资源实现这一目标?我尝试使用path_prefix,但我无法完成它。
任何帮助?
谢谢,
NicolásHockIsaza
答案 0 :(得分:0)
也许这会有所帮助:
ActionController::Routing::Routes.draw do |map|
map.category '/:category_type/', :controller => 'categories'
map.category_products '/:category_type/:category_name/', :controller => 'products'
map.root :controller => 'categories'
end
class CategoriesController < ApplicationController
def index
@categories = Category.find(:all) unless params[:category_type]
@categories = Category.find_all_by_category_type if params[:category_type]
end
end
class ProductsController < ApplicationController
def index
@category = Category.find_by_name(params[:category_name])
@products = @category.products.find(:all)
end
end
在这种情况下,您将按类型在'/:category_type /'和所有类别的根路径'/'
获得类别过滤类别