我有一个 Staff 模型,其中有很多 staff_orders
class Staff < Ressource
has_many :staff_orders
staff_orders 包含一个 from_date 和一个 to_date。在此期间,工作人员被占用。
我想创建一个工作人员的下拉列表,在每个工作人员后面显示日期,当他被占用时: “拉尔夫艾伦(11 月 1 日至 11 月 2 日,11 月 4 日至 11 月 5 日)”
在这种情况下,急切加载可以完美运行。我需要使用 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 方法来做到这一点。现在它不再执行急切加载。任何想法?