更新属性用户排名

时间:2013-11-20 09:31:06

标签: ruby-on-rails attributes

早安全,

我的排名更新存在问题,并且在满足标准时我的头脑更新了它将用户排名更新为“true”?

这是要点https://gist.github.com/FrostDuke/7552206

试图用Pry解决这个问题,但没有这样的运气。

1 个答案:

答案 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