2016-03-19 2 views
1

Немного начинающего вопроса здесь ... в моем приложении rails У меня есть модель для частей, и я хочу, чтобы администратор мог применять скидку к цене на деталь, если захочет. Значение скидки в моей модели частей является целым числом. У меня есть метод в моей части модели называется apply_discountRuby/Rails Процент от децималя

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 

Ошибка я получаю «неопределенный метод` to_decimal»для 10: Fixnum» всякий раз, когда вы кладете в процентах скидки. Любые идеи, как я могу получить скидку, соответствующую конвертации в поплавок или десятичную? Спасибо

ответ

6

Нет метода to_decimal для целых чисел, но есть to_f (для плавания). Вам нужно разделить на 100, чтобы получить процент скидки на работу.

Кроме того, вам не нужно использовать self., если вы не назначаете.

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

большое спасибо! работал как шарм – Dan

Смежные вопросы