选择类别之间,然后选择许多子类别

时间:2013-02-20 12:41:38

标签: ruby-on-rails categories acts-as-taggable

我有一些问题,我会尽力解释。

我想构建提供此类功能的分类。 我有一些很大的类别,如废物回收设备,那是子类别,如切碎机,然后我再次有子类别。

我想建立分类系统,允许在我创建新产品时选择这样的路线到类别。

我想知道为我的应用提供此类功能的最佳方法是什么?

有什么建议吗?

acts_as_taggable提供这样的功能吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我已将gem ancestry用于类似目的。这至少会为您正在讨论的树结构提供模型层支持。

RailsCasts已经做过关于它的教程。

要使用祖先,我建议使用rails console,例如:

# category.rb

class Category < ActiveRecord::Base
  attr_accessor :name, :parent
  has_ancestry
end

# rails console

~/Rails/CTK/jwbc[master] $ rails console
Loading development environment (Rails 3.2.11)
1.9.3p286 > main = Category.create(name: "Main category")
# => created
1.9.3p286 > sub1 = Category.create(name: "First subcategory", parent: main)
# => created
1.9.3p286 > sub2 = Category.create(name: "Sub-subcategory"), parent: sub1)
# => created
1.9.3p286 > main.children
# => Would return sub1
1.9.3p286 > main.descendants
# => Returns sub1 and sub2
1.9.3p286 > Category.at_depth(1)
# => Returns all subcategories, in this case sub1