rails - 减少活动记录列

时间:2016-11-20 17:01:18

标签: ruby-on-rails activerecord

我在减少我的一张有效记录的列时出现问题。

获得这样的记录 -

@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列,但不会减少该计数器。

我做错了什么?

1 个答案:

答案 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值。它处理它们。