多くのstaff_ordersを持つStaffモデルがあります
class Staff < Ressource
has_many :staff_orders
staff_orders には from_date と to_date が含まれています。この間、スタッフは常駐しています。
スタッフメンバーのドロップダウンリストを作成したいと思います.各staff_memberの後ろに、彼が占有されている日付が表示されます: 「ラルフ・アレン(11月1日-11月2日、11月4日-11月5日)」
この場合、熱心な読み込みは完全に機能します。天候に関係なく、staff_orders が占めているかどうかに関係なく、すべてのスタッフ メンバーを一覧表示したいので、LEFT JOIN を使用する必要があります。
@staff_collection = Staff.joins("LEFT JOIN staff_orders ON
staffs.id=staff_orders.staff_id").
collect{ |x| [x.long_name, x.id] }
しかし、ここからがトリッキーな部分です。ここで、スタッフ メンバーの名前の後ろに、特定の期間 (たとえば、今週) だけの占有情報のみを追加したいと考えています。例: 「ラルフ アレン (11 月 4 日 - 11 月 5 日)」
@staff_collection = Staff.joins("LEFT JOIN staff_orders ON
ressources.id=staff_orders.staff_id").
collect{ |x| [x.long_name_occupied(@from_date,@to_date), x.id] }
これを行うには、フィルター処理の日付をパラメーターとして name メソッドを呼び出します。これで、熱心な読み込みが実行されなくなりました。何か案が?