这里有一个初学者问题...在我的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; 每当你输入一定比例的折扣。任何想法我如何获得适当的折扣转换成浮点数或小数?谢谢
答案 0 :(得分:8)
整数没有to_decimal
方法,但有一个to_f
(浮动)。您需要除以100才能获得折扣百分比。
此外,除非您要分配,否则无需使用self.
。
def apply_discount
price - ( discount.to_f / 100 * price )
end