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's使用可能値よりも小さい場合:balance、エラーが属性に追加され:bet_amount、モデルインスタンスが無効になります。

于 2012-08-25T04:48:53.820 に答える