można po prostu użyć .titleize
jak ten "i want to make the first letter of each work into a cap".titleize
można dowiedzieć się więcej o titleize z apidocks
titleize (word) public
aktywuje wszystkie słowa i zastępuje kilka znaków w łańcuchu stworzyć ładniejszy tytuł. titleize służy do tworzenia ładnych wydruków. Nie jest używany w wewnętrznych Railsach.
titleize jest również aliasowane jako titlecase.
Przykłady:
"man from the boondocks".titleize # => "Man From The Boondocks"
"x-men: the last stand".titleize # => "X Men: The Last Stand"
"TheManWithoutAPast".titleize # => "The Man Without A Past"
"raiders_of_the_lost_ark".titleize # => "Raiders Of The Lost Ark"
jak działa ta rzeczywistość
# File activesupport/lib/active_support/inflector/methods.rb, line 115
def titleize(word)
humanize(underscore(word)).gsub(/\b('?[a-z])/) { $1.capitalize }
end
faktycznie należy "-" w pracach możemy dodać nową metodę do klasy String takiego.
# ./lib/core_ext/string.rb
class String
#"goyette-xyz-is wide road".titleize_with_dashes#=> "Goyette-xyz-is Wide Road"
def titleize_with_dashes
humanize.gsub(/\b('?[a-z])/) { $1.capitalize }
end
end
'„Goyette-xyz-jest szeroka droga”. split ('') .map (&: capitalize) .join ('') ' – apneadiving
Skąd komputer powinien wiedzieć, że' Goyette', 'Wide' i' Road' to słowa, które powinny być pisane wielką literą, oraz 'xyz' i 'is' are not? Czy planujesz mieć bazę danych lub sztuczną inteligencję jako część tej metody? Powiedz nam, jakiego rodzaju AI używasz. W przeciwnym razie pytanie nie jest w pełni określone. – sawa
@sawa Myślę, że OP chce traktować dzieloną część ('goyette-xyz-is') jako jedno słowo. – Stefan