2013-07-02 54 views
0

我正在使用遺留數據庫,其中某個百分比值存儲在DECIMAL列中,但用戶輸入並以整數形式讀取數據。如何將數據按摩碼添加到模型屬性?

所以,我們說的DB包括...

contracts 
--------- 
funded_percent DECIMAL 10,5 

我想一個「getter」和「二傳手」乘以100上讀取和除以添加到ActiveRecord的模型,該表100保存。

動機是這樣的,在我看來的代碼中,我只處理整數。

我不確定正確的做法。


哦,其中一些值超過小數點後三位。

因此,該方法需要將存儲的值「0.036」四捨五入爲顯示值「4%」。

回答

1

這裏你指的「三資」屬性,以應對在整數

def funded=(other) 
    self.funded_percent = other/100 
end 

def funded 
    funded_percent * 100 
end 
0

請嘗試以下方法:

def funded_percent=(value) 
    write_attribute :funded_percent, value/100 if value.present? 
end 

def funded_percent 
    (read_attribute :funded_percent) * 100 
end 

然後在您的視圖中,您可以使用funded_percent.ceil

1

「0.036」到顯示值「4%」。

您可以使用.round這個

def funded 
    (funded_percent * 100).round 
end 
相關問題