使用Ruby语言创建类别和子类别
我一整天都在试图解决这个问题,但没有任何解决办法,你能帮我吗? 以下是问题描述: 程序应该能够显示给定时间内的面包屑轨迹 类别/子类别。 前任: 投入:公共关系 产出:商业与金融>>广告与营销>>公共关系 在这里,商业和金融是主要类别,广告和营销是其子类别,公共关系是广告和营销的子类别 我考虑过使用递归实现它,但我不太确定如何实现它 谢谢,使用Ruby语言创建类别和子类别,ruby,recursion,Ruby,Recursion,我一整天都在试图解决这个问题,但没有任何解决办法,你能帮我吗? 以下是问题描述: 程序应该能够显示给定时间内的面包屑轨迹 类别/子类别。 前任: 投入:公共关系 产出:商业与金融>>广告与营销>>公共关系 在这里,商业和金融是主要类别,广告和营销是其子类别,公共关系是广告和营销的子类别 我考虑过使用递归实现它,但我不太确定如何实现它 谢谢, Jimmy假设它是纯Ruby,您可以这样做: class Category def initialize name, parent = nil
Jimmy假设它是纯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"
1.9.2p320:046>c=Category.new“父级”
=> #
1.9.2p320:047>sub=Category.new“sub”,c
=> #
1.9.2p320:048>子显示
=>“父级>>子”
这是activerecord型号吗?只需使用一个parent_id字段。不,它只能在纯ruby中完成。。谢谢,非常感谢froderik,我认为它使用递归,但我认为你的方法看起来更好。实际上它是递归的。:-)但也许不是你想象的那样!