Я должен показать пользовательское количество, представленное в различных валютах. e.q.:
Your balance: $ 100 000.00
€ 70 000.00
3 000 000,00 руб.
Таким образом, я должен использовать number_to_currency
три раза с различными локалями (en, eu, рутений). Что правильный путь состоит в том, чтобы сделать это?
Я не думаю, что вам действительно нужны разные локали, потому что у вас просто балансы в разных валютах. Вы можете просто передать дополнительные аргументы в number_to_currency. Что-то вроде этого:
number_to_currency(70000.00, :unit => "€", :separator => ".", :delimiter => " ", :format => "%u %n")
Это отобразит: € 70 000.00
Кроме того, похоже, что вы можете установить опцию :locale при вызове number_to_currency. Это не документировано, но вот часть кода number_to_currency:
defaults = I18n.translate('number.format''number.format', :locale => options[:locale], :raise => true) rescue {}
currency = I18n.translate('number.currency.format''number.currency.format', :locale => options[:locale], :raise => true) rescue {}
Так что вы должны быть в состоянии сделать что-то вроде:
number_to_currency(70000.00, :locale => :ru)