我在 drivers 表中定义了 has_one 关系
has_one :current_haul
与运输表关联。
还有运输表和司机表,它们都有
organization_id
。
我想申请这样的条件
select *
from drivers
join hauls on drivers.organization_id=hauls.organization_id
and drivers.current_haul_id= hauls.id
我可以将这个条件放在
has_one
修饰符中吗?
这就是您可以做到的方法,只需在
Haul
表上添加一个布尔列即可。也许您需要一个唯一的索引来确保您在任何给定时刻都没有多个currents。
has_one :current_haul, -> { where(current: true) }, class_name: 'Haul'
您可以在您的驱动程序模型中添加如下所示的关联。
has_one :current_haul, -> { where(current: true).first }, class_name: 'Haul'
这里我假设您的 Haul 模型中存在一个布尔位来检查当前状态。