ruby-on-rails - 在自联接中显示层次结构

标签 ruby-on-rails ruby rails-activerecord

我正在构建一个员工目录应用程序并使用自联接,因此所有员工关系都在一个表中。

我有下属 (direct_reports) 显示,我可以显示个人的经理。

这是我的模型:

has_many :direct_reports, :class_name => "Person", :foreign_key => "manager_id"
belongs_to :manager, :class_name => "Person"

这是我的看法:

<tr><td>Manager:</td><td><strong><%= link_to "Manager", @person.manager %></strong></td></tr>

    <tr><td>Direct Reports:</td><td><strong><% @person.direct_reports.each do |person| %>
                    <%= link_to person.lname + ", " + person.fname, person %><br>
                    <% end %></strong></td></tr>

但是,我还没有找到任何方法来显示组织中上层人员的完整报告层次结构。是的,我正在展示经理,但我需要展示他们的经理和他们的经理等,一直到 CEO。

我假设每个人只有一位经理(在链上)。

非常感谢任何帮助。

最佳答案

你想要的是树状结构,每个员工可以有一个经理,经理也可以有老板等。

试用 Ancestry .非常适合。你会自动获得像 siblings 这样的范围,让所有员工共享同一个经理,等等。

关于ruby-on-rails - 在自联接中显示层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14694730/

相关文章:

ruby-on-rails - 在 Rspec 中测试创建变量赋值

ruby-on-rails - 在现有数据库上进行 Rails 迁移

ruby-on-rails - Vim/command-T : Ignoring "gem-name" because its extensions are not built. 尝试 gem pristine "gem-name"

ruby-on-rails - 调用关联之前的回调

ruby-on-rails - 如果 open-uri 有效,为什么 net/http 返回一个空字符串?

php - Web 开发发展太快了吗?

ruby-on-rails - Ruby on Rails 表单中模型字段的默认值

ruby - 如何在规范中 stub Nokogiri

ruby-on-rails - Rails : Calling . limit(5) 更改结果顺序

ruby-on-rails - 如何从数据库中删除 Rails 中的 id/对象数组?