Eu uso a gema Facebook-omniauth com o intuito de registrar usuários Aqui está o que eu tenho no meu retorno de chamada
class CallbacksController < Devise::OmniauthCallbacksController
def facebook
@user = User.from_omniauth(request.env["omniauth.auth"])
if @user.persisted?
flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
sign_in_and_redirect @user
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
end
Quero adicionar a cada novo usuário, 7000 pontos, pela primeira vez em que eles se registram. No código acima, tentei adicionar resource.update(points: 7000)
e funciona, quando o usuário se inscreve, ele recebe 7000 pontos, o problema é que, quando eu sair, e entrar novamente, o número é novamente 7000, embora deva ser menor, pois o usuário usou alguns desses pontos.
Respostas:
2 para resposta № 1Você tem uma coluna no users
mesa chamada "sign_in_count"
, quando o usuário se inscrever pela primeira vez, deve ser 0, verifique se é zero e adicione 7000, caso contrário, não adicione nada
Algo assim :
resource.update(points: 7000) if resource.sign_in_count == 0