我一直試圖解決這個問題整天,但沒有得到任何解決方案,所以你能幫我嗎? 這裏是問題描述: 程序應該能夠顯示給定的 類別/子類別的麪包屑蹤跡。 例如: 輸入:公共關係 輸出:業務&金融>>廣告&營銷>>公共關係。使用Ruby語言創建類別和子類別
這裏商業&金融是主要類別,廣告&營銷是它的子類和公共關係是進階&營銷的子類。
我想過使用遞歸來實現它,但我不太確定如何去做。
感謝, 吉米
我一直試圖解決這個問題整天,但沒有得到任何解決方案,所以你能幫我嗎? 這裏是問題描述: 程序應該能夠顯示給定的 類別/子類別的麪包屑蹤跡。 例如: 輸入:公共關係 輸出:業務&金融>>廣告&營銷>>公共關係。使用Ruby語言創建類別和子類別
這裏商業&金融是主要類別,廣告&營銷是它的子類和公共關係是進階&營銷的子類。
我想過使用遞歸來實現它,但我不太確定如何去做。
感謝, 吉米
假設它是純Ruby中,你可以做這樣的事情:
class Category
def initialize name, parent = nil
@name = name
@parent = parent
end
def display
@parent ? "#{@parent.display} >> #{@name}" : name
end
def name
@name
end
end
,並使用它像這樣
1.9.2p320 :046 > c = Category.new "Parent"
=> #<Category:0x000001009c46d0 @name="Parent", @parent=nil>
1.9.2p320 :047 > sub = Category.new "Sub", c
=> #<Category:0x000001009bf860 @name="Sub", @parent=#<Category:0x000001009c46d0 @name="Parent", @parent=nil>>
1.9.2p320 :048 > sub.display
=> "Parent >> Sub"
非常感謝froderik,但我認爲它使用遞歸,但我認爲你的方法看起來更好。 –
實際上它是遞歸的。 :-)但可能不是你期望的方式! – froderik
這是一個ActiveRecord模式?只需使用parent_id字段。 – pguardiario
不,它只能用普通的紅寶石來完成..雖然 –