Rails 有一个条件

问题描述 投票:0回答:2

我在 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
修饰符中吗?

ruby-on-rails ruby-on-rails-4
2个回答
5
投票

这就是您可以做到的方法,只需在

Haul
表上添加一个布尔列即可。也许您需要一个唯一的索引来确保您在任何给定时刻都没有多个currents

has_one :current_haul, -> { where(current: true) }, class_name: 'Haul'


0
投票

您可以在您的驱动程序模型中添加如下所示的关联。

has_one :current_haul, -> { where(current: true).first }, class_name: 'Haul'

这里我假设您的 Haul 模型中存在一个布尔位来检查当前状态。

© www.soinside.com 2019 - 2024. All rights reserved.