Method: ActiveSupport::Inflector#parameterize
- Defined in:
- lib/jinx/active_support/inflector.rb
#parameterize(string, sep = '-') ⇒ Object
Replaces special characters in a string so that it may be used as part of a ‘pretty’ URL.
Examples
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>
261 262 263 264 265 266 267 268 269 270 271 272 |
# File 'lib/jinx/active_support/inflector.rb', line 261 def parameterize(string, sep = '-') re_sep = Regexp.escape(sep) # replace accented chars with ther ascii equivalents parameterized_string = transliterate(string) # Turn unwanted chars into the seperator parameterized_string.gsub!(/[^a-z0-9\-_\+]+/i, sep) # No more than one of the separator in a row. parameterized_string.squeeze!(sep) # Remove leading/trailing separator. parameterized_string.gsub!(/^#{re_sep}|#{re_sep}$/i, '') parameterized_string.downcase end |