Rails有一个条件

时间:2016-07-14 18:03:53

标签: ruby-on-rails ruby-on-rails-4

我在drivers表中定义了has_one关系

has_one :current_haul 

它与hauls table有关 并且运行表和驱动程序表,它们都有organization_id

我想应用这样的条件

select * 
from drivers 
join hauls on drivers.organization_id=hauls.organization_id
 and drivers.current_haul_id= hauls.id  

我可以将这个条件放在has_one修饰符中吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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