如何实现铁路产品的折扣

时间:2017-06-02 13:21:52

标签: ruby-on-rails

我正在尝试为目录中的每个产品实施折扣。 我在Products表中添加了新字段 - 折扣。 如果discount.present?如何重新计算product.price?

我尝试向product.rb添加帮助:

def price
 old_price = self.price
 if self.discount.present?
  self.price -= self.price / self.discount
 else
  old_price
end

但它让我陷入“Stack level too deep”错误

1 个答案:

答案 0 :(得分:4)

您收到此错误是因为price不断引用自身。通过创建一种显示价格的新方法,你会好得多。

def price_with_discount
  return self.price if self.discount.nil? || self.discount.zero?
  self.price - (self.price / self.discount)
end

然后你在视图中使用它

<%= product.price_with_discount %>