Как отобразить категорию и подкатегорию - PullRequest
1 голос
/ 10 марта 2012

Есть таблица с полями: id, name, id_cat Пожалуйста, покажите пример метода, который выводит эти категории. А где вы хотите реализовать этот метод в контроллере или в помощниках? Помогите реализовать этот рекурсивный метод.

1 Ответ

0 голосов
/ 10 марта 2012

Как я правильно понимаю, у вас есть таблица категорий с циклической ссылкой, реализованная в столбце id_cat.

Следующая модель должна работать так, как вы ожидали:

class Category < ActiveRecord::Base
  belongs_to :supercategory, :class_name => "Category", :foreign_key => "cat_id"
  has_many :subcategories, :class_name => "Category", :foreign_key => "cat_id"
end

Так что если categories таблица выглядит следующим образом:

id   |   name    |  cat_id
---------------------------
1    | cat 1     | null
2    | cat 1.1   | 1
3    | cat 1.2   | 1
4    | cat 2     | null
5    | cat 1.2.1 | 3

Category.find(1).subcategories возвращает массив с объектами cat 1.1 и cat 1.2.

Category.find(1).supercategory возвращает nil

Category.find(3).supercategory возвращает cat 1 объект

Category.find(4).supercategory возвращает nil

...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...