ruby-on-rails 器械控制员是否无法访问数据库?

iszxjhcz  于 2023-01-27  发布在  Ruby
关注(0)|答案(1)|浏览(120)

我正在尝试实现优惠券/令牌功能。在registration_controller.rb中,我尝试通过代码找到令牌/优惠券,并将被推荐用户分配给另一个用户的推荐人,但它(优惠券)返回nil。
然而,如果我插入byebug和复制粘贴代码在控制台,它的工作完美。任何想法为什么会发生这种情况?
此外,控制器分配的用户与其应分配的用户不同(例如:新用户应分配给用户ID 3,但它分配给用户ID 15)

def create
  unless params[:user][:referrer_code].empty?
      # This returns nil
      coupon = Coupon.find_by(code: params[:user][:referrer_code])
      params[:user][:referrer_id] = coupon.referrer_id if coupon&.referrer && coupon&.multiple?
  end
  super
end
nr7wwzry

nr7wwzry1#

与其更改参数,不如这样做:

def create
  super do |resource|
    if resource.persisted?
      coupon = Coupon.find_by(code: params[:user][:referrer_code])
      resource.update(referrer_id: coupon.referrer_id) if coupon&.referrer && coupon&.multiple?
    end
  end
end

相关问题