Мне недавно сообщили, что для моих текущих отношений с rails app я должен использовать вложенный набор gem .(Моя предыдущая тема / вопрос здесь ) В настоящее время у меня есть 3 модели,
Категории has_many Подкатегории
Подкатегории принадлежат_Категориям и продуктам has_many.
Товар принадлежит к подкатегории.Я хотел показать что-то вроде этого
+ Категория
---- Подкатегория
-------- Продукт
-------- Продукт
---- Подкатегория
-------- Продукт
-------- Продукт
+ Категория
---- Подкатегория
-------- Product
-------- Product
Итак, если бы я сделал это в nested_set, как бы я настроил это в своих моделях?Буду ли я удалять свою подкатегорию и модели продуктов и просто добавлять act_as_nested_set в модели категорий?и как только я позабочусь о модели, с помощью чего я буду обновлять свои действия контроллеров, чтобы иметь возможность создавать узлы во вложенном наборе, который я создаю?
Я думаю, просто помогите мне понять, как я могу сделать CRUD, создавать, читать, обновлять и уничтожать этот список nested_set.
Вот некоторый код, который у меня уже есть
Контроллер категорий:
class CategoriesController < ApplicationController
def new
@category = Category.new
@count = Category.count
end
def create
@category = Category.new(params[:category])
if @category.save
redirect_to products_path, :notice => "Category created! Woo Hoo!"
else
render "new"
end
end
def edit
@category = Category.find(params[:id])
end
def destroy
@category = Category.find(params[:id])
@category.destroy
flash[:notice] = "Category has been obliterated!"
redirect_to products_path
end
def update
@category = Category.find(params[:id])
if @category.update_attributes(params[:category])
flash[:notice] = "Changed it for ya!"
redirect_to products_path
else
flash[:alert] = "Category has not been updated."
render :action => "edit"
end
end
def show
@category = Category.find(params[:id])
end
def index
@categories = Category.all
end
end
Категория Модель:
class Category < ActiveRecord::Base
acts_as_nested_set
has_many :subcategories
validates_uniqueness_of :position
scope :position, order("position asc")
end
Модель подкатегории:
class Subcategory < ActiveRecord::Base
belongs_to :category
has_many :products
scope :position, order("position asc")
end
И, наконец, модель продукта:
class Product < ActiveRecord::Base
belongs_to :subcategory
has_many :products
scope :position, order("position asc")
end
Любая помощь будет принята с благодарностью.