Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 单表继承,有很多关系和排序_Ruby On Rails_Has Many_Eager Loading_Single Table Inheritance_Self Join - Fatal编程技术网

Ruby on rails 单表继承,有很多关系和排序

Ruby on rails 单表继承,有很多关系和排序,ruby-on-rails,has-many,eager-loading,single-table-inheritance,self-join,Ruby On Rails,Has Many,Eager Loading,Single Table Inheritance,Self Join,我有STI,在员工和他们提交的报告之间建立了许多关系。employee团队在数据库中使用单个表继承进行结构化,如下所示 class Employee['Manager','Member'])。包括(:报告) 此处显示了#1、#2和#3的代码-- class Employeeself.id).where(:type=>self.class.Employee\u类别) 结束 def所有报告 报告=[] 自我。团队成员。包括(:报告)。每个do | emp| 报告排序问题,您可以让数据库进行排序

我有STI,在员工和他们提交的报告之间建立了许多关系。employee团队在数据库中使用单个表继承进行结构化,如下所示

class Employee
我想有一个方法,列出一个员工提交的所有报告,以及链中所有报告的员工。例如,(i)
vp=Vicepresident.first;副总裁所有报告
列出副总裁、向副总裁汇报的经理以及向经理汇报的所有团队成员提交的所有报告。(ii)
mgr=Manager.first;经理所有报告
列出经理提交的所有报告以及向经理报告的所有员工

我实现它的方式如下

  • 添加一个类方法employee_categories,将所有员工类型报告到。e、 g.
    [“经理”、“成员”]
  • 使用上面的列表生成所有员工的列表<代码>例如员工。where(:副总裁\u id=>3)。where(:type=>['Manager','Member'])
  • 来自#2的员工列表的即时加载报告<代码>例如员工。where(:副总裁_id=>3)。where(:type=>['Manager','Member'])。包括(:报告)
  • 此处显示了#1、#2和#3的代码--

    class Employeeself.id).where(:type=>self.class.Employee\u类别)
    结束
    def所有报告
    报告=[]
    自我。团队成员。包括(:报告)。每个do | emp|
    
    报告排序问题,您可以让数据库进行排序