【问题标题】:choosing between category and then by many subcategories在类别之间进行选择,然后通过许多子类别进行选择
【发布时间】:2013-02-20 12:41:37
【问题描述】:

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

我想建立分类,提供这样的功能。 我有一些大类别,例如废物回收设备,下面是子类别,例如切碎机,然后我又有子类别。

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

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

有什么建议吗?

acts_as_taggable 提供这样的功能吗?

谢谢!

【问题讨论】:

  • 或者你可以告诉我看的方式,也许有不同的方式来做这样的事情?

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


【解决方案1】:

我已将 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

【讨论】:

  • 你能提供一些演示示例吗?
  • 我可以在哪里试用这个结构?
  • 所以我需要在类别模型中添加祖先?啊,我错误地将它添加到产品模型:) :(
  • 那么如果我使用您向我展示的类别,那么检索属于 sub1 或 sub2 类别的产品的方法是什么??
  • Product.where(category_id: my_category.subtree_ids) 例如。它将查找属于所选类别或其子类别的所有产品。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
相关资源
最近更新 更多