gpt4 book ai didi

ruby-on-rails - 如何有效地检查一组记录的 updated_at 和 created_at 是否相等

转载 作者:数据小太阳 更新时间:2023-10-29 08:49:11 28 4
gpt4 key购买 nike

假设我们有一个 Post 模型的 10 条记录,它们具有 DateTime 属性 updated_atcreated_at

我想知道以下三种状态哪个是正确的:

一个。所有帖子自创建以来都未被修改过
B. 所有帖子自创建以来都已更新
C. 部分帖子已更新,部分未更新

这样做最有效的方法是什么?

最佳答案

如果您无法更新数据库,您可以创建多个范围:

scope :changed, where('updated_at > created_at')
scope :unchanged, where('updated_at = created_at')

# Return +true+ if any Posts changed
def self.changed?
changed.any?
end

# Return +true+ if no Posts changed
def self.unchanged?
!changed?
end

# Return +true+ if all Posts changed
def self.all_changed?
unchanged.empty?
end

请注意 any?empty?many? [source]进行了优化,以便在合并到范围时,它们通过使用 count(*) 与迭代 ruby​​ 中的所有元素来修改实际的 sql。在某些情况下,他们可能会回退到 ruby​​,但通常您会有更高效的查询。

关于ruby-on-rails - 如何有效地检查一组记录的 updated_at 和 created_at 是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com