1

用户有余额(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

我还是新手,要温柔:)

4

1 回答 1

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's:bet_amount小于相关User的 available :balance,错误将被添加到:bet_amount属性中,使模型实例无效。

于 2012-08-25T04:48:53.820 回答