如何增加一个简单的计数器并执行和update_all?

时间:2012-10-04 16:14:15

标签: ruby-on-rails ruby

我正在尝试根据用户登录获取当前的ActiveRecord,并将计数器递增1,然后使用新的递增值更新数据库,其中电子邮件地址等于登录用户。

除了设置新的递增值之外,代码中的所有内容都有效。我试图先将它设置为另一个变量(my_counter)然后更新,但赋值是故障所在。

if User.find_by_email(@email)
      User.increment_counter(:redirect_count, 1)
      @my_counter.to_int = :redirect_count
      User.update_all({:redirect_count => @my_counter}, :email => @email)

如果我将my_counter设置为9,那么Updateall()会正确更新数据库。

2 个答案:

答案 0 :(得分:1)

如何使用increment!

user = User.find_by_email(@email)
user.increment!(:redirect_count)

答案 1 :(得分:0)

怎么样

user = User.find_by_email(@email)
user.redirect_count += 1
user.save