仅在Rails 4中与Facebook首次注册给用户点



我使用facebook-omniauth gem和设计这是我回调中的内容

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

我想首次将每个新用户(7000点)添加到他们第一次注册。在上面的代码中,我尝试添加resource.update(points: 7000),并且确实有效,当用户注册时,他得到7000分,问题是当我登录并再次登录时,数字再次为7000用户使用了其中的一些点。

您在users表中有一个列,称为"sign_in_count",当用户第一次签名时,它应该为0,请检查是否为零,请添加7000,如果不添加任何东西

类似的东西:

resource.update(points: 7000) if resource.sign_in_count == 0

最新更新