在rails 4中,我想要获取范围内的最后一行数据。我有称为Abc
、AbcRoot
、AbcRootDisabling
的模型,以及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
是零还是disablings.enabled_at
不是nil
。
我怎样才能做到这一点?请帮帮我。
获取"最后一个";根据最后一个的一些定义(例如created_at
(,记录将是:
including_abc_disablings.where(disablings: { id: nil }).order(created_at: 'desc').limit(1)
换句话说,按照最近的第一条进行排序,并获取第一条记录。