0

製品のコストを手動で価格設定する必要がある e コマース プラットフォーム (Rails) を作成しています。基本的に、価格には 3 つの状態があります。

  1. 価格はまだありません
  2. 価格帯(目安)
  3. 正確な価格(有料)

現時点では、これは小数フィールドmin_pricemax_priceおよびを使用してモデル化されていますexact_price
ロジック処理の価格は、最終的に次の形式になります。

if exact_price.present?
  # Do something
elsif min_price.present? && max_price.present?
  # Do something else
else
  # Fallback
end

利用可能な価格情報が混在しているため、コレクションを扱う場合、これは非常に困難になります。

列を削除して、すべてを aと aexact_priceでモデル化するのが最善かもしれないと思いますが、これは少し面倒です。min_pricemax_price

これをモデル化する他の優れた方法はありますか?

4

1 に答える 1

1

コア価格ロジックをカプセル化する価格クラスを作成し、このクラスのインスタンスをモデルに追加できます

これにより、次のことが可能になります。

  • display_price などのヘルパー メソッドを作成する
  • 比較演算子を実装して、価格でソートできるようにします(ロジックが何であるかわかりません)
  • 一部の製品の価格が (上限なし) である可能性があると判断した場合は、後で延長します。
  • 価格の検証を作成します (正確な価格と最低価格を持つことは無効です)
于 2013-04-25T22:42:54.033 に答える