3

我正在为我的未婚夫构建一个 Rails 应用程序来进行一些非常基本的库存跟踪。我们已经经历了几个选择,因为无论如何我都想学习 Rails,所以我们想出了为什么不学习。无论如何,如果我可以将一些产品分类为这样,那么产品的结构方式会有所帮助。

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

就这样。

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

这甚至有可能吗?

4

2 回答 2

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
于 2012-09-17T02:12:59.827 回答
3

我最近使用了Ancestry gem,它完美地满足了我的需求。我使用它的网站与您的请求非常相似,我认为您会发现它很有用。

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

这是一个RailsCasts 插曲,展示了如何使用 Ancestry。

于 2012-09-17T02:30:35.237 回答