早安全,
我的排名更新存在问题,并且在满足标准时我的头脑更新了它将用户排名更新为“true”?
这是要点https://gist.github.com/FrostDuke/7552206
试图用Pry解决这个问题,但没有这样的运气。
答案 0 :(得分:0)
您的user_rank
函数会更新用户的rank
,并返回true
,因为update_attributes
成功了。然后,您将user.rank
设置为true
中返回的update_user_rank
。
更改user_rank
以返回新排名,而不是调用update_attributes
;或者只是从user.user_rank
致电update_user_rank
,而不将其返回值分配到user.rank
。我建议前者 - 将user_rank
更改为以下内容:
def user_rank
sn = self.snippets.where(:approved => true)
if sn.count >= 10
"Author"
elsif sn.count > 10 && sn.count >= 20
"Co-Editor"
elsif sn.count >20 && sn.count >= 100
"Chief Editor"
else
"Clerk"
end
end