2016-03-19 20 views
1

Buraya yeni başlayan bir soruyu soruyorum ... raylarım uygulamasında parçalar için bir modelim var ve isterlerse yöneticinin istediği fiyatın fiyatına indirim uygulayabilmesini istiyorum. Parça modelimdeki indirimin değeri bir tamsayıdır. Eğer indirim yüzdesi koymak her zaman: Ben parçası modeli içinde bir yöntemi "Fixnum 10 için tanımsız yöntem` to_decimal'" apply_discountRuby/Rails Ondalık yüzdelik

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 

alıyorum hatadır denilen var. Bir şamandıra veya ondalığa dönüştürmek için uygun indirimi nasıl alabilirim?

cevap

6

Tamsayılar için to_decimal yöntem yok, ancak to_f (float) var. İşe indirim yüzdesini elde etmek için 100'e bölmeniz gerekecek.

Ayrıca, atamadan önce self. kullanmanız gerekmez.

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

çok teşekkür ederim! çekicilik gibi çalıştı – Dan

İlgili konular