2011-07-13 13 views
0

私は私のカテゴリモデルの祖先を持っています。私はスラグの宝石を使用しています。 現在、私は次のようしている:これは正常に動作しますが、私は親/子供パスの代わりに、/子供祖先モデルのためのレールスラッグ

私のカテゴリが親を持つ場合を見せたい

class Category < ActiveRecord::Base 
    slug :name 
end 


class CategoriesController < ApplicationController 
    inherit_resources 
    defaults :finder => :find_by_slug 
    def show 
    @category = Category.find_by_slug(params['category_id']) 
    show! 
    end 
end 

    match "categories/:category_id" => 'categories#show', :as => :category 

。これに到達する方法?

たとえば、私はBMWカテゴリとx5をサブカテゴリとして持っています。 私は今このリンクを持っています:/categories/bmw(bmw)と/categories/x5(x5)。私はこのリンクcategories/bmw/x5代わりのサブカテゴリを必要とする

答えて

0
match "categories/:category_id" => 'categories#show', :as => :category_short 
match "categories/:category/:category_id" => 'categories#show', :as => :category_long 

    def category_path(category) 
    unless category.is_root? 
     category_long_path category.parent, category 
    else 
     category_short_path category 
    end 
    end 
のようなルートを作成する必要があります

resources :things do 
    match "categories/:category_id" => 'categories#show', :as => :category 
end 

0

ネストすることができます(少なくともRailsの3)このようなあなたの親リソースのあなたmatch声明:これは/things/:thing_id/categories/:category_id

+0

私は物事を必要としません、私は* categories/category /:サブカテゴリ*または* categories/category *親ならif *が必要です –

関連する問題