gpt4 book ai didi

mysql - rails : Find all children from the same generation

转载 作者:行者123 更新时间:2023-11-29 20:58:33 26 4
gpt4 key购买 nike

在我的申请中,我有职位。每个位置都有一个父位置和多个子位置。如何导航树并找到同一代中的所有位置?

目前我有这个:

def org_chart_level
ps = self
level = 10
while ps do
break if ps.reports_to == nil
ps = ps.reports_to
level += 10
end
if self.reports_to
siblings = self.reports_to.responsible_for
else
siblings = [self]
puts siblings
end
"#{level}-#{siblings.index(self) + 1}"
end

这几乎有效,因为它可以给我一个位置的级别,并且可以告诉我它是父级的哪个 sibling ,但它不能告诉我它是哪一代的 sibling 。

每个职位的预期级别。

1.1
-2.1
-3.1
-2.2
-3.2

实际水平:

1.1
-2.1
-3.1
-2.2
-3.1

最佳答案

在保存之前,我最终将位置生成存储在数据库中。

before_save:find_ Generation

def find_generation
ps = self
i = 0
while ps do
break if ps.reports_to == nil
ps = ps.reports_to
i += 1
end
self.generation = i
end

然后当我需要生成组织结构图级别时:

def org_chart_level
ps = self
level = 10
while ps do
break if ps.reports_to == nil
ps = ps.reports_to
level += 10
end
generation = organization.positions.where(generation: self.generation) #position belongs to organization.
"#{level}-#{generation.index(self) + 1}"
end

关于mysql - rails : Find all children from the same generation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37425436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com