【问题标题】:create Categories and Sub-categories using Ruby language使用 Ruby 语言创建类别和子类别
【发布时间】:2012-05-23 03:37:24
【问题描述】:

我整天都在尝试解决这个问题,但没有任何解决方案,所以请你帮帮我吗? 以下是问题描述: 该程序应该能够显示给定的面包屑轨迹 类别/子类别。 前任: 输入:公共关系 输出:商业与金融 >> 广告与营销 >> 公共关系。

这里商业和金融是主要类别,广告和营销是它的子类别,公共关系是广告和营销的子类别。

我考虑过使用递归来实现它,但我不太确定如何去做。

谢谢, 吉米

【问题讨论】:

  • 这是一个 activerecord 模型吗?只需使用 parent_id 字段即可。
  • 不,只能用普通的红宝石来完成。虽然谢谢

标签: ruby recursion


【解决方案1】:

假设它是普通的 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,我认为它使用递归,但我认为你的方法看起来更好。
  • 其实是递归的。 :-) 但可能不是你预期的方式!
猜你喜欢
  • 2012-04-16
  • 1970-01-01
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多