【问题标题】:ActiveRecord Query Where Last has_many Record MatchesActiveRecord 查询最后一个 has_many 记录匹配的位置
【发布时间】:2014-04-25 21:15:40
【问题描述】:

我有一堂课,让我们接触很多Transitions ...

class Contact
    has_many :transitions
    ...
end

class Transition
    belongs_to contact
    ...
end

我想做的是找到所有最后转换由“系统”执行的联系人。显然,Transition 有一个performed_by 列,可以是“系统”或“用户”。我正在尝试一些不同的东西,但无法得到我真正需要的东西。我在想一些类似的事情......

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

但这会得到所有有任何转换为“系统”的联系人,我只想要最后一次转换为“系统”的联系人。

想法?

【问题讨论】:

  • 我不确定你真的需要这样的Transition.where(:performed_by => 'system').order("created_at ASC").last.contact
  • 我实际上稍微简化了真正的问题,这将在一些其他联系人查询(范围/短截的 lambda)的中间。不过,我会看一下,看看我是否可以朝这个方向前进@Kingston。谢谢。

标签: ruby-on-rails-3 activerecord


【解决方案1】:

我觉得你可以试试这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    相关资源
    最近更新 更多