我正在为未婚夫构建一个rails应用程序,以进行一些非常基本的库存跟踪。我们已经经历了几个选项,因为我想学习rails,无论如何我们想到为什么不。无论如何,如果我可以将某些产品分类为这样的产品,那么产品结构就会很有用。
A = Parent Category
B = Child Category
C = Product Category
因此。
A->Product
A->B->Product
A->B->Product->C
这甚至是远程可能吗?
答案 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。