ActiveRecord查询最后has_many记录匹配的位置

时间:2014-04-25 21:15:40

标签: ruby-on-rails-3 activerecord

我有一个课程,让我们联系许多过渡...

class Contact
    has_many :transitions
    ...
end

class Transition
    belongs_to contact
    ...
end

我想要做的是找到最后过渡的所有联系人都由'系统'执行。显然,Transition有一个performed_by列,可以是' system'或者'用户'。我尝试了一些不同的东西,但却找不到我真正需要的东西。我正在思考...... ...

Contact.
joins(:transitions).
where('transitions.performed_by = ', 'system')

但是,这将使所有任何过渡的联系人都使用' system'我只希望最后一次过渡的地方是' system'。

思想?

1 个答案:

答案 0 :(得分:0)

我想你可以试试这个

contact = Contacts.first
contact.transitions.where(:performed_by => 'system').last