Слизняк Rails для модели предков

У меня есть родословная для моей модели категории. Я использую slug gem. В настоящее время у меня есть следующее:

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

Это работает нормально, но я хочу показать путь parent/children вместо /children

если у моей категории есть родитель. Как достичь этого?

Например, у меня есть категория BMW и x5 в качестве подкатегории. У меня сейчас такие ссылки: /categories/bmw для бмв и /categories/x5 для х5. мне нужна эта ссылка categories/bmw/x5 вместо подкатегории


person Petya petrov    schedule 13.07.2011    source источник


Ответы (1)


Вы можете вложить свой matchstatement в свой родительский ресурс следующим образом (по крайней мере, в Rails 3):

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

Это должно создать маршрут, подобный /things/:thing_id/categories/:category_id

person Jeff Smith    schedule 13.07.2011
comment
мне не нужны вещи, мне нужны категории/категория/:подкатегория или категории/категория, если родитель - person Petya petrov; 13.07.2011