【发布时间】:2012-10-21 21:48:18
【问题描述】:
我一直在网上寻找解决方案,但无济于事。我正在解决一个问题,我们在 has_many 关联中有两个表,这里是模型名称
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
软件规范是为工作订单创建一个表单,由一个单独的实体提及所有工作细节(假设是一个客户所以在保存表单细节时employee_id 为零)。此时,在将 WorkOrder 的详细信息保存在数据库中后,我们需要触发一个自动调度系统,该系统将按照以下顺序自动分配具有最少 work_order 数量的员工;
没有关联 WorkOrders 的员工(第一个条件,如果未找到则下一个)
拥有最少数量的相关工作订单的员工正在工作(或第二个条件)
我正在尝试使用活动记录将上述条件耦合到一个 FIND SQL 中,这将返回一个只有一个员工记录的集合,以便我们可以将employee.id 与 work_orders.employee_id 相关联这个新的工作订单。
我编写了一个管理面板来查找所有没有关联employee_id 的work_orders,并且可以通过手动提供employee.id(使用上述首选项)来使用下一个可用员工更新work_orders 记录,但我想在某种程度上自动执行此操作.
任何建议或伪代码会有帮助吗?
【问题讨论】:
标签: ruby-on-rails-3 activerecord model associations single-table-inheritance