parameterize(string, separator: "-", preserve_case: false, locale: nil) public

Replaces special characters in a string so that it may be used as part of a ‘pretty’ URL.

parameterize ("Donald E. Knuth") # => "donald-e-knuth"
parameterize ("^trà ̈s|Jolie-- ") # => "tres-jolie"

To use a custom separator, override the separator argument.

parameterize ("Donald E. Knuth", separator: '_') # => "donald_e_knuth"
parameterize ("^trà ̈s|Jolie__ ", separator: '_') # => "tres_jolie"

To preserve the case of the characters in a string, use the preserve_case argument.

parameterize ("Donald E. Knuth", preserve_case: true) # => "Donald-E-Knuth"
parameterize ("^trà ̈s|Jolie-- ", preserve_case: true) # => "tres-Jolie"

It preserves dashes and underscores unless they are used as separators:

parameterize ("^trà ̈s|Jolie__ ") # => "tres-jolie__"
parameterize ("^trà ̈s|Jolie-- ", separator: "_") # => "tres_jolie--"
parameterize ("^trà ̈s_Jolie-- ", separator: ".") # => "tres_jolie--"

If the optional parameter locale is specified, the word will be parameterized as a word of that language. By default, this parameter is set to nil and it will use the configured I18n.locale.

Show source
# File activesupport/lib/active_support/inflector/transliterate.rb, line 123
 def parameterize(string, separator: "-", preserve_case: false, locale: nil)
 # Replace accented chars with their ASCII equivalents.
 parameterized_string = transliterate(string, locale: locale)
 # Turn unwanted chars into the separator.
 parameterized_string.gsub!(/[^a-z0-9\-_]+/, separator)
 unless separator.nil? || separator.empty?
 if separator == "-"
 re_duplicate_separator = /-{2,}/
 re_leading_trailing_separator = /^-|-$/
 else
 re_sep = Regexp.escape(separator)
 re_duplicate_separator = /#{re_sep}{2,}/
 re_leading_trailing_separator = /^#{re_sep}|#{re_sep}$/
 end
 # No more than one of the separator in a row.
 parameterized_string.gsub!(re_duplicate_separator, separator)
 # Remove leading/trailing separator.
 parameterized_string.gsub!(re_leading_trailing_separator, "")
 end
 parameterized_string.downcase! unless preserve_case
 parameterized_string
 end
Register or log in to add new notes.

AltStyle によって変換されたページ (->オリジナル) /