gpt4 book ai didi

ruby-on-rails - Rails 模型 counter_cache 列初始化

转载 作者:行者123 更新时间:2023-12-01 09:10:31 26 4
gpt4 key购买 nike

我使用 rspec 进行测试,并使用 hornsby 场景作为测试中使用的对象图。

将计数器缓存列初始化为 0 值而不是让它们未初始化 (nil) 是否是一种好习惯?或者我应该在创建这些计数器缓存列的迁移中定义默认值?

最佳答案

是的,您应该设置默认值。否则,您必须使用特殊情况的数学运算来处理 NULL。

假设您有一个帖子对象数组,并且您想获得评论数的总和。

如果你初始化为零 @posts.sum(&:comment_count) 会,但如果你不这样做可能不会因为它会在 nil 上失败。

我建议像这样定义您的列:

add_column :posts, :comments_count, :integer, :default => 0, :null => false

关于ruby-on-rails - Rails 模型 counter_cache 列初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1453246/

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