В моей модели пользователя, у меня есть столбец «sign_in_count», который я изначально установлен на 1, когда пользователь создан:Rails прибавка Войти счетчик
class User < ActiveRecord::Base
before_save { self.sign_in_count = 1 }
end
Это работает, когда я иду на консоли рельсы, я может получить назад 1:
u = User.last
u.sign_in_count
=> 1
Затем я создал метод в моем SessionsHelper:
def sign_in_count(user)
user.sign_in_count += 1
end
Тогда я называю это мой SessionsC такой как:
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 всегда 1. Любая идея относительно того, что я делаю неправильно здесь?
Вы проверили 'user.sign_in_count' или' sign_in_count (user) '? –
Метод '.increment' от Thieu выглядит потрясающе. Кроме того, может ли ваша проблема быть в том, что вы в настоящее время не называете 'user.save'? – jvillian
'user.sign_in_count + = 1' не сохраняет его. – ShallmentMo