我正在尝试为目录中的每个产品实施折扣。 我在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”错误
答案 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 %>