gpt4 book ai didi

ruby-on-rails - Rails 递增登录计数器

转载 作者:行者123 更新时间:2023-12-04 12:07:09 25 4
gpt4 key购买 nike

在我的用户模型中,我有一个“sign_in_count”列,在创建用户时我最初将其设置为 1:

class User < ActiveRecord::Base

before_save { self.sign_in_count = 1 }

end

这在我进入 rails 控制台时有效,我可以返回 1:
u = User.last
u.sign_in_count
=> 1

然后我在我的 SessionsHelper 中创建了一个方法:
def sign_in_count(user)
user.sign_in_count += 1
end

然后我像这样称它为我的 SessionsController:
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
log_in user
sign_in_count(user)
.
.
.
end

但是 sign_in_count 似乎永远不会增加。我登录完全正常。我没有得到任何错误或任何东西。我检查了控制台,sign_in_count 总是 1。知道我在这里做错了什么吗?

最佳答案

使用 increment方法 ( detail ) 而不是,像这样:

def sign_in_count(user)
user.increment!(:sign_in_count)
end
还有,请改 before_save回调到 before_create打回来。我们只是初始化 sign_in_count仅在创建新用户时进行一次。
如果您想减少 sign_in_count , 请使用 decrement .

关于ruby-on-rails - Rails 递增登录计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36074024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com