Ruby on rails 3 使用活动记录将两个不同表中的记录与关联的复杂查找SQL有很多关系

Ruby on rails 3 使用活动记录将两个不同表中的记录与关联的复杂查找SQL有很多关系,ruby-on-rails-3,activerecord,model,associations,single-table-inheritance,Ruby On Rails 3,Activerecord,Model,Associations,Single Table Inheritance,我一直在网上寻找解决方案,但没有结果。我正在研究一个问题,在一个有很多关联的表中有两个表,下面是模型名 class Employee < ActiveRecord::Base # main table stores all the employee details has_many :work_orders attributes :id, :name class WorkOrder < ActiveRecord::Base # Work

我一直在网上寻找解决方案,但没有结果。我正在研究一个问题,在一个有很多关联的表中有两个表,下面是模型名

 class Employee < ActiveRecord::Base     # main table stores all the employee details
       has_many :work_orders
       attributes :id, :name

 class WorkOrder < ActiveRecord::Base   # Work Orders are created by a form
       belongs_to :employee
       attributes :id, :work_details, :employee_id
软件规范将创建一个工作单表单,由一个单独的实体(比如客户)提及所有工作细节,因此保存表单细节时员工id为零。此时,在数据库中保存工作单的详细信息后,我们需要触发一个自动分派系统,该系统将自动为员工分配最少数量的工作单,优先顺序如下:

无关联工作单的员工第一个条件,如果未找到,则下一个条件 具有最少相关工作订单数量或第二条件的员工 我正在尝试使用活动记录将上述条件耦合到一个FIND SQL中,它将返回一个只包含一个员工记录的集合,以便我们可以将Employee.id与此新工单的work\u orders.Employee\u id关联

我编写了一个管理面板来查找所有没有相关员工id的工单,并可以通过使用上述首选项手动提供employee.id来更新下一个可用员工的工单记录,但我希望在某种程度上实现自动化


有什么建议或伪代码会有帮助吗

选择a.id,countb.employee\u id,从a.id上的员工a左加入工单b=b.employee\u id组按a.id,b.employee\u id按counta.id,a.id

此查询将为您提供使用最少的员工

简单的翻译就是:根据您的需求添加您自己的订单
Employee.joinsleft join work\u orders on work\u orders.Employee\u id=employees.id.groupemployees.id,work\u orders.employees\u id

嘿,非常感谢解决方案就在我眼前,您非常清楚地指出,在使用find方法时,我似乎缺少了group参数,现在查询我工作得很好