Ruby / Rails百分比为小数

时间:2016-03-19 00:51:47

标签: ruby-on-rails ruby fixnum

这里有一个初学者问题...在我的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

我得到的错误是&#34;未定义的方法`to_decimal&#39; 10:Fixnum&#34; 每当你输入一定比例的折扣。任何想法我如何获得适当的折扣转换成浮点数或小数?谢谢

1 个答案:

答案 0 :(得分:8)

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

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

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