İşte benim modelinde kullanıyorum ne:Rails'de doğrulamadan önce dolar işaretlerini nasıl bir değerden ayırırım?
before_validation :strip_dollar_sign
validates :amount_due,
:format => { :with => /^\d+??(?:\.\d{0,2})?$/ },
:numericality => {:greater_than => 0}
private
def strip_dollar_sign
self.amount_due = self.amount_due.to_s.tr!('$,','').to_f
end
Ben istiyorum tam olarak ne olsun Raylar Konsolu elle strip_dollar_sign işlevinden çizgiyi çalıştırırsanız (yani 400 $ 400.0 olarak biter) ama ne zaman Uygulamamdaki asıl formu kullanıyorum, değer her zaman 0.0 olarak biter. Yanlış yaptığım şeyi yakalayan var mı?
para, veritabanında ve veri tabanında ondalık ve Ruby'de BigDecimal olarak depolanmamalıdır. Şamandıralar, beklenmedik sonuçlara neden olabilecek yuvarlama hataları olabilir. – DGM