私は解決策を見つけるためにウェブを調べていましたが、役に立ちませんでした。has_many 関連付けに 2 つのテーブルがある問題に取り組んでいます。モデル名は次のとおりです。
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
ソフトウェア仕様には、別のエンティティによってすべての作業の詳細に言及する WorkOrders のフォームが作成されることになっていました (フォームの詳細を保存すると、顧客の場合、employee_id は nil になります )。この時点で、WorkOrder の詳細をデータベースに保存する際に、自動派遣システムをトリガーする必要があります。このシステムは、以下の順序で最少数の work_orders を優先する従業員を自動的に割り当てます。
関連する WorkOrders のない従業員 (最初の条件、見つからない場合は次)
彼が働いている関連付けられた WorkOrders の最小数を持つ従業員 (または 2 番目の条件)
この新しい work_order の work_orders.employee_id に employee.id を関連付けることができるように、1 つの Employee レコードのみを含むセットを返すアクティブ レコードを使用して、上記の条件を 1 つの FIND SQL に結合しようとしています。
関連するemployee_idのないすべてのwork_ordersを検索する管理パネルを作成し、employee.idを手動で(上記の設定を使用して)指定することで、次に利用可能な従業員でwork_ordersレコードを更新できますが、これをある程度自動化したいと考えています。
提案や疑似コードは役に立ちますか?