/ / Dê pontos ao usuário apenas na primeira inscrição no Facebook no Rails 4 - ruby-on-rails, ruby-on-rails-4, model-view-controller, invise, omniauth

Dê pontos ao usuário apenas na primeira inscrição com o Facebook no Rails 4 - ruby-on-rails, ruby-on-rails-4, controlador de visão de modelo, legenda, omniauth

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 № 1

Você 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