2016-03-19 10 views
1

初心者の質問のビットはここにあります...私のレールアプリでは、私は部品のモデルを持っており、管理者は彼らがしたいと思えば部品の値段に割引を適用できるようにします。私の部品モデルにおける割引の値は整数です。 あなたが割引の割合で入れたときに:私は私の一部モデル内のメソッド「はFixnumかを10のための未定義のメソッド `to_decimal」」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 

私は取得していますエラーがあると呼ばれています。どのように私はフロートに変換する割引を得ることができる任意のアイデアや小数点ですか?ありがとう

答えて

6

整数の場合はto_decimalメソッドはありませんが、to_f(浮動小数点数)があります。割引率を得るには、100で割る必要があります。

また、割り当てていない限りself.を使用する必要はありません。

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

ありがとうございました!魅力的に働いた – Dan

関連する問題