在他创建User
之后,我必须更新Post
模型的User.find(id).increment!(reputation: 10)
属性。
到目前为止,这是我尝试过的:
简单的解决方案是:
updated_at
但是,这也会更新User.increment_counter(:reputation, id)
字段。
我寻找一种无需更新时间戳即可更新计数器的方法,发现了这一点:
reputation
但是此方法将update_column
加1。
我还发现Post
方法不会更新时间戳。
但是,我似乎无法将其用作单行查询。
是的,我必须在用户创建帖子后更新其声誉。因此,在我的after_create_commit { self.user.update_column(reputation: (self.user.reputation + 10))}
模型中,
self.user
此查询调用update_counters
(以获取当前帖子的关联用户)2次,如何避免这种情况。
OR
还有没有其他方法可以增加而不更新时间戳。
谢谢
更新:
找到了一种解决方案,self.user
方法(在下面的答案中添加)。
如果有人知道任何其他方法,或者可以在不两次调用{{1}}的情况下帮助我如何使用update_column,请帮助我。 谢谢
答案 0 :(得分:2)
没关系,找到了解决方案。因此,显然,update_counters
方法正在完全满足我的需求。
User.update_counters :id,:reputation => 10
谢谢。