0

我正在编写一个电子商务平台(在 Rails 中),其中产品的成本必须手动定价。价格基本上有三种可能的状态:

  1. 还没有价格
  2. 价格范围(估计)
  3. 准确的价格(应付)

目前,这是使用十进制字段min_price和建模max_priceexact_price
任何处理价格的逻辑最终都采用以下形式:

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

这在处理收藏品时变得非常困难,因为有多种可用的定价信息。

我认为最好删除exact_price列并根据 amin_price和 a对所有内容进行建模max_price,但这似乎有点混乱

还有其他很好的建模方法吗?

4

1 回答 1

1

您可以创建一个封装核心价格逻辑的价格类,并将此类的实例添加到您的模型中

这将允许您:

  • 创建辅助方法,例如 display_price
  • 实现比较运算符以允许按价格排序(不知道逻辑是什么)
  • 当您决定某些产品的价格可能从(无上限)时延后
  • 为价格创建验证(比如有一个准确的价格和最低价格是无效的)
于 2013-04-25T22:42:54.033 回答