Method: String#parameterize
- Defined in:
- lib/active_support/core_ext/string/inflections.rb
permalink #parameterize(separator: "-", preserve_case: false, locale: nil) ⇒ Object
Replaces special characters in a string so that it may be used as part of a ‘pretty’ URL.
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
.
class Person
def to_param
"#{id}-#{name.parameterize}"
end
end
@person = Person.find(1)
# => #<Person id: 1, name: "Donald E. Knuth">
<%= link_to(@person.name, person_path) %>
# => <a href="/person/1-donald-e-knuth">Donald E. Knuth</a>
To preserve the case of the characters in a string, use the preserve_case
argument.
class Person
def to_param
"#{id}-#{name.parameterize(preserve_case: true)}"
end
end
@person = Person.find(1)
# => #<Person id: 1, name: "Donald E. Knuth">
<%= link_to(@person.name, person_path) %>
# => <a href="/person/1-Donald-E-Knuth">Donald E. Knuth</a>
See ActiveSupport::Inflector.parameterize.
215 216 217 |
# File 'lib/active_support/core_ext/string/inflections.rb', line 215 def parameterize(separator: "-", preserve_case: false, locale: nil) ActiveSupport::Inflector.parameterize(self, separator: separator, preserve_case: preserve_case, locale: locale) end |