2012-09-17 33 views
3

我正在爲我的未婚妻建立一個Rails應用程序來做一些非常基本的庫存跟蹤。我們已經經歷了幾種選擇,因爲我想學習鐵軌,我們想到了爲什麼不。無論如何,如果我可以按照這種方式分類某些產品,那麼這些產品的結構就會很有幫助。Rails類別有很多類別?

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

因此。

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

這是遠程可能的嗎?

回答

4

這些被稱爲自連接,他們正在通過活動記錄支持:

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 
3

我最近使用Ancestry gem,它完美地爲我所需要的。我使用的網站與您的網站有非常相似的要求,我認爲您可以找到它。

使用寶石的唯一不足就是你不會學習Rails框架的內部。但是,獎金是你得到一大筆爲你寫的代碼。

以下是顯示如何使用Ancestry的RailsCasts episode