Ruby/Rails 百分比到小数

Ruby/Rails Percentage to decimal

这里有点初学者问题...在我的 rails 应用程序中,我有一个零件模型,我希望管理员能够根据需要对零件的价格应用折扣。我的零件模型中的折扣值是一个整数。我的零件模型中有一个名为 apply_discount

的方法
class Part < ActiveRecord::Base
  has_many :order_items
  belongs_to :category
  default_scope { where(active: true)}

  def apply_discount
    new_price = self.discount.to_decimal * self.price
    self.price - new_price
  end

我收到的错误是 "undefined method `to_decimal' for 10:Fixnum" 每当您投入一定比例的折扣时。有什么想法可以让折扣适当地转换成浮点数或小数吗?谢谢

整数没有 to_decimal 方法,但有 to_f(浮动)。您需要除以 100 才能使折扣百分比生效。

此外,除非您正在分配,否则您不需要使用 self.

def apply_discount
  price - ( discount.to_f / 100 * price )
end