Rails 4--如何获取作用域内的最后一行数据?

tjvv9vkg  于 2022-10-15  发布在  Ruby
关注(0)|答案(1)|浏览(170)

在rails 4中,我希望获得作用域中的最后一行数据。我有叫AbcAbcRootAbcRootDisabling的型号,里面有Abc型号,

def self.including_abc_disablings
   joins('JOIN abc_roots_abcs as crc ' \
          'ON crc.abc_id = abcs.id').
        joins('LEFT OUTER JOIN abc_root_disablings as disablings ' \
          'ON crc.abc_root_id = disablings.abc_root_id')
end

private_class_method :including_abc_disablings

scope :not_disabled, -> {
  including_abc_disablings.where(disablings: { id: nil })
}

这里,abc有_多个禁用,在检查我需要获取最后一行禁用的作用域内的条件时,我需要检查disablings.id为nil或disablings.enabled_at不是nil
我怎样才能做到这一点呢?请帮帮我。

oewdyzsn

oewdyzsn1#

根据LAST的某个定义(例如created_at),获取“LAST”记录的典型方法是:

including_abc_disablings.where(disablings: { id: nil }).order(created_at: 'desc').limit(1)

换句话说,按最近的第一个排序,然后取第一个记录。

相关问题