Rails类别有很多类别?

时间:2012-09-17 01:53:03

标签: ruby-on-rails ruby

我正在为未婚夫构建一个rails应用程序,以进行一些非常基本的库存跟踪。我们已经经历了几个选项,因为我想学习rails,无论如何我们想到为什么不。无论如何,如果我可以将某些产品分类为这样的产品,那么产品结构就会很有用。

    A = Parent Category
    B = Child Category
    C = Product Category

因此。

    A->Product
    A->B->Product
    A->B->Product->C

这甚至是远程可能吗?

2 个答案:

答案 0 :(得分:4)

这些被称为自连接,它们受Active Record支持:

http://guides.rubyonrails.org/association_basics.html#self-joins

在您的示例中,类别可能如下所示:

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

答案 1 :(得分:3)

我最近使用了Ancestry gem,它完全符合我的需要。我使用它的网站有一个非常类似的请求,我认为你会发现它很有用。

使用gem的唯一缺点是你也不会学习Rails框架的内部结构。但是,奖金是你得到了大量为你编写的代码。

这是一个显示如何使用Ancestry的RailsCasts episode