加入活跃记录的条件

时间:2013-08-09 12:52:37

标签: ruby-on-rails activerecord active-record-query

我有两个模型

Order has_many State(s)
State belongs_to Order
a State has an attribute named 'kind'

我试图用活动记录表达以下查询:'所有具有current_state.kind的订单=:某事',

current_state是订单的最后创建状态。

我还在模型中添加:current_state作为has_one关联:

has_one :current_state, -> { order('created_at DESC').limit(1) }, class_name: 'State'

但它无济于事

1 个答案:

答案 0 :(得分:0)

这是我迄今为止找到的最佳解决方案

Order.joins(:states).where("states.id IN (SELECT MAX(id) FROM states GROUP BY order_id)").where("states.kind"=>"checkedin")