बस थोड़ा सा अद्यतन और RoR विकास में कुछ महत्वाकांक्षी कनिष्ठों / शुरुआती लोगों के लिए सभी उत्तरों का एक संयोजन जो निश्चित रूप से कुछ स्पष्टीकरण के लिए यहां आएगा।
धन से काम करना
:decimal
DB में पैसे स्टोर करने के लिए उपयोग करें , जैसा कि @molf ने सुझाव दिया (और मेरी कंपनी पैसे के साथ काम करते समय एक सुनहरे मानक के रूप में उपयोग करती है)।
# precision is the total number of digits
# scale is the number of digits to the right of the decimal point
add_column :items, :price, :decimal, precision: 8, scale: 2
कुछ बिंदु:
माइग्रेशन कैसे जनरेट करें
उपरोक्त सामग्री के साथ माइग्रेशन उत्पन्न करने के लिए, टर्मिनल में दौड़ें:
bin/rails g migration AddPriceToItems price:decimal{8-2}
या
bin/rails g migration AddPriceToItems 'price:decimal{5,2}'
जैसा कि इस ब्लॉग में बताया गया है पोस्ट ।
मुद्रा स्वरूपण
चुंबन अतिरिक्त पुस्तकालयों अलविदा और उपयोग में निर्मित सहायकों। उपयोगnumber_to_currency
सुझाए गए @molf और @facundofarias के रूप में ।
साथ खेलने के लिए number_to_currency
रेल कंसोल में सहायक, के लिए एक कॉल भेजने ActiveSupport
केNumberHelper
सहायक एक्सेस करने के लिए वर्ग।
उदाहरण के लिए:
ActiveSupport::NumberHelper.number_to_currency(2_500_000.61, unit: '€', precision: 2, separator: ',', delimiter: '', format: "%n%u")
निम्नलिखित उत्पादन देता है
2500000,61€
Number_to_currency के अन्य options
की जाँच करें ।
इसे कहां लगाना है
आप इसे एक आवेदन सहायक में रख सकते हैं और किसी भी राशि के लिए विचारों के अंदर उपयोग कर सकते हैं।
module ApplicationHelper
def format_currency(amount)
number_to_currency(amount, unit: '€', precision: 2, separator: ',', delimiter: '', format: "%n%u")
end
end
या आप इसे Item
एक उदाहरण विधि के रूप में मॉडल में रख सकते हैं , और इसे कॉल कर सकते हैं जहां आपको मूल्य (विचारों या सहायकों में) को प्रारूपित करने की आवश्यकता है।
class Item < ActiveRecord::Base
def format_price
number_to_currency(price, unit: '€', precision: 2, separator: ',', delimiter: '', format: "%n%u")
end
end
और, एक उदाहरण कि कैसे मैं number_to_currency
एक कॉन्ट्रोलर के अंदर का उपयोग करता हूं (नोटिस का negative_format
विकल्प, रिफंड का प्रतिनिधित्व करने के लिए उपयोग किया जाता है)
def refund_information
amount_formatted =
ActionController::Base.helpers.number_to_currency(@refund.amount, negative_format: '(%u%n)')
{
# ...
amount_formatted: amount_formatted,
# ...
}
end
DECIMAL(19, 4)
लोकप्रिय पसंद है जाँच यह भी जाँच यहाँ तय करने के लिए कितने दशमलव उपयोग करने के लिए स्थानों, आशा में मदद करता है विश्व मुद्रा प्रारूप।