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