2013-03-16 1 views
-1

Я использую драгоценный камень AwesomeNestedSet для заполнения дерева категорий.Устанавливает имена в модели самосоединения

Модель:

class Category < ActiveRecord::Base 
attr_accessible :name, parent_id 
has_many :subcategories, :class_name => "Category", :foreign_key => "parent_id" 
belongs_to :parent_category, :class_name => "Category" 
acts_as_nested_set 
end 

И мне нужна коллекция вывода имен, как это:

Category_1 
Category_1 >> Category_2 
Category_1 >> Category_2 >> Category_3 
Category_4 

Что лучший способ сделать это с минимальным количеством запросов для БДА?

ответ

0

К сожалению, для ответа на собственный вопрос ....

Простой:

def self.nested_names 
    name = "" 
    Category.each_with_level(Category.all) do |category, level| 
     if category.root? 
     name = category.name 
     else 
     name += " >> " + category.name 
     end 
     category.name = name 
    end 
    end