Ruby on Rails Titleize переносное имя
Rails titleize удаляет дефис, а метод capitalize не использует слово после дефиса. Я хотел что-то вроде следующего (написать способ):
"mary-joe spencer-moore" => "Mary-Joe Spencer-Moore"
"mary-louise o'donnell" => "Mary-Louise O'Donnell"
2 ответов
Проверьте реализацию Titelize и из него можно сделать:
"mary-joe spencer-moore".humanize.gsub(/\b('?[a-z])/) { .capitalize }
даст вам = > "Мэри-Джо Спенсер-Мур"
и вы можете написать для него функцию в классе string, добавить в intalizers:
class String
def my_titleize
humanize.gsub(/\b('?[a-z])/) { .capitalize }
end
end
и затем из вашего кода:
"mary-joe spencer-moore".my_titleize
вы также можете получить желаемый результат, разделив строку и заголовок разделов отдельно:
"mary-louise o'donnell".split('-').map(&:titleize).join('-')