我在减少我的一张有效记录的列时出现问题。
获得这样的记录 -
@post = Post.active.find(params[:post_id])
它成功返回帖子。
然后调用住在我的帖子模型中的@post.decrement_likes_count
。
decrement_likes_count:
def decrement_likes_count
self.post_likes_count -= 1
self.save!
end
它实际上只是保存部分,根本不触及post_likes_count
列。
当我检查heroku日志时,所有它都会更新帖子的updated_at
列,但不会减少该计数器。
我做错了什么?
答案 0 :(得分:1)
不确定未保存记录的确切问题是什么,但我建议您查看ActiveRecord提供的decrement
方法。
语法:
decrement(attribute, by = 1)
e.g
@post = Post.active.find(params[:post_id])
@post.decrement(:post_likes_count)
@post.save
这种方法的好处是你不必担心nil
值。它处理它们。