根据用户的“赌注”创建验证,以便他们不能在“余额”上下注?

时间:2012-08-25 03:42:39

标签: ruby-on-rails ruby

用户有余额(user.balance)。

用户可以在游戏上下注(bet.amount)。

我怎样才能阻止用户投注超过余额的投注?

我假设我可以创建一个看起来像这样的验证?

def enough_funds?
  @bet.bet_amount > self.current_user.balance 
  flash[:notice] = "You do not have the available funds for this bet"
end

我还是铁杆的新手,温柔的:)

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上:

class Bet < ActiveRecord::Base
  belongs_to :user

  validate :funds_suffiency

  def funds_sufficiency
    errors.add :bet_amount, "is more than your available balance" if bet_amount < user.balance
  end
end

如果Bet的{​​{1}}小于相关的:bet_amount可用User,则错误将添加到:balance属性,从而使模型实例。