Skip to Content Skip to Search

Action View Number Helpers

Provides methods for converting numbers into formatted strings. Methods are provided for phone numbers, currency, percentage, precision, positional notation, file size, and pretty printing.

Most methods expect a number argument, and will return it unchanged if can’t be converted into a valid number.

Namespace
Methods
N

Instance Public methods

number_to_currency(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_currency.

number_to_currency("1234")               # => "$1234.00"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_currency("12x34")              # => "$12x34"
number_to_currency("12x34", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 55
def number_to_currency(number, options = {})
  delegate_number_helper_method(:number_to_currency, number, options)
end

number_to_human(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_human.

number_to_human("1234")               # => "1.23 Thousand"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_human("12x34")              # => "12x34"
number_to_human("12x34", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 125
def number_to_human(number, options = {})
  delegate_number_helper_method(:number_to_human, number, options)
end

number_to_human_size(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_human_size.

number_to_human_size("1234")               # => "1.21 KB"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_human_size("12x34")              # => "12x34"
number_to_human_size("12x34", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 111
def number_to_human_size(number, options = {})
  delegate_number_helper_method(:number_to_human_size, number, options)
end

number_to_percentage(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_percentage.

number_to_percentage("99")               # => "99.000%"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_percentage("99x")              # => "99x%"
number_to_percentage("99x", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 69
def number_to_percentage(number, options = {})
  delegate_number_helper_method(:number_to_percentage, number, options)
end

number_to_phone(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_phone.

number_to_phone("1234567890")         # => "123-456-7890"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_to_phone("12x34")              # => "12x34"
number_to_phone("12x34", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 37
def number_to_phone(number, options = {})
  return unless number
  options = options.symbolize_keys

  parse_float(number, true) if options.delete(:raise)
  ERB::Util.html_escape(ActiveSupport::NumberHelper.number_to_phone(number, options))
end

number_with_delimiter(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_delimited.

number_with_delimiter("1234")               # => "1,234"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_with_delimiter("12x34")              # => "12x34"
number_with_delimiter("12x34", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 83
def number_with_delimiter(number, options = {})
  delegate_number_helper_method(:number_to_delimited, number, options)
end

number_with_precision(number, options = {})

Delegates to ActiveSupport::NumberHelper#number_to_rounded.

number_with_precision("1234")               # => "1234.000"

Additionally, supports a :raise option that will cause InvalidNumberError to be raised if number is not a valid number:

number_with_precision("12x34")              # => "12x34"
number_with_precision("12x34", raise: true) # => InvalidNumberError
# File actionview/lib/action_view/helpers/number_helper.rb, line 97
def number_with_precision(number, options = {})
  delegate_number_helper_method(:number_to_rounded, number, options)
end