使用设计用户模型中的after_create更新错误的用户

时间:2016-06-26 00:14:19

标签: ruby-on-rails forms devise after-save

我已经设置了一个referral_code,并希望在有人注册后向其引用的用户添加1。代码没有错误,但是referral_count只更新第一个用户,无论用户号是什么用作referral_code。

用户模型

 after_create :check_referral_code



def check_referral_code
 if self.referral_code != nil
  self.referral_code = self.referral_code.strip
  referral_code = self.referral_code
  length = referral_code.length
  referral_code = referral_code[5..length]
  @user_referral_code = referral_code.to_i 

   if User.exists?(id: @user_referral_code)
    referral_user = User.find_by(@user_referral_code)
    referral_user.referral_count = referral_user.referral_count + 1
    referral_user.save
   end
end

以devise sign_up形式:

    <div class="form-group input-group-lg">
      <%= f.text_field :referral_code, class: "form-control", placeholder: "Referral Code (ex.LEX50456)"%>
    </div>

如果您需要我提供任何其他信息,请与我们联系。

先谢谢!

0 个答案:

没有答案