gpt4 book ai didi

ruby-on-rails - Rails 中的计数器缓存 : 'increment_counter' works, 'increment' 不是吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:40 24 4
gpt4 key购买 nike

给定三个模型,例如房子、墙和门(房子有许多墙,墙有很多门):House 应该有一个计数器缓存列,用于所有关联墙的所有门,因为这是一个相当昂贵的查询。

为了更新此专栏,我在门模型中使用了 after_create 和 after_destroy 回调,它们成功触发了以下方法:

def increase_house_doors_count
House.increment_counter(:doors_count, house.id)
end

def decrease_house_doors_count
House.decrement_counter(:doors_count, house.id)
end

“房子”是一个方法:

def house
wall.house
end

最初我使用了一个略有不同但 (IMO) 更简单的版本:

def increase_house_doors_count
house.increment(:doors_count)
end

def decrease_house_doors_count
house.decrement(:doors_count)
end

但是后一个版本在模型中使用时没有更新计数器。不过,直接从控制台运行代码是成功的。

我在这里错过了什么?

干杯!

最佳答案

也许可以这样尝试:

house.increment!(:doors_count)

也许需要就地完成。

关于ruby-on-rails - Rails 中的计数器缓存 : 'increment_counter' works, 'increment' 不是吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4617703/

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