0

入札システムのように、ユーザーがオファーを入力するWebサイトで価格を再設定するために必要なコードに問題がありますが、オファーは検証され、予約を上回っている場合は受け入れられ、下回っている場合は再試行します。 。

Ruby on Railsでこれを行う方法の指針についてのアイデアはありますか?私はほとんどのコードをユーザーのために作成しましたが、調査するのが難しいのはこの部分だけです。

したがって、ユーザーには、検証される前に価格を入力する入力フィールドがあります。(明らかに)

4

1 に答える 1

1

これを非常に答えやすい質問にするために、ビジネスオブジェクトに関する多くの情報を提供していないので、いくつかの仮定を立てます。私の仮定は次のとおりです。

  1. あなたはeBayクローンを作成しているので、2つの関連するモデルがあります:ItemBid
  2. Item多くの入札をすることができます
  3. Item属性がありますreserve_price(小数?)
  4. ABidには属性がありますamount(これも小数です)

所属する予約価格を満たす入札のみを作成する場合Itemは、カスタムバリデーターを使用することをお勧めします。これはvalidate、モデルを呼び出し、モデルが検証されたときに呼び出すメソッドの名前を(シンボルとして)渡すことによって行われます。そのようです:

class Bid < ActiveRecord::Base

    belongs_to :item

    validate :ensure_meets_reserve_price

    private
    def ensure_meets_reserve_price
        if amount < self.item.reserve_price
            errors.add(:amount, "does not meet reserve price")
        end
    end

end

これは要件について多くの仮定をしていることを忘れないでください、しかしうまくいけば、これはRailsのカスタムバリデーターを示しています。この例では、のamount指定Bidがの予約価格を満たしていない場合Item、入札は作成されず、ユーザーに表示できるエラーメッセージが表示されます。

于 2012-07-16T17:33:10.960 に答える