Rails で文字列の最初の文字を大文字にし、他のすべての文字はそのままにしておくようにしようとしています。「私はニューヨーク出身です」が「私はニューヨーク出身です」になってしまうという問題に直面しています。
最初の文字を選択するには、どの方法を使用しますか?
ありがとう
編集: macek が提案したものを実装しようとしましたが、「未定義のメソッド `capitalize'」エラーが発生します。コードは大文字の行がなくても正常に機能します。助けてくれてありがとう!
def fixlistname!
self.title = self.title.lstrip + (title.ends_with?("...") ? "" : "...")
self.title[0] = self.title[0].capitalize
errors.add_to_base("Title must start with \"You know you...\"") unless self.title.starts_with? 'You know you'
end
編集2:うまくいきました。助けてくれてありがとう!
編集 3:待って、いいえ、私はしませんでした.これが私のリストモデルにあるものです。
def fixlistname!
self.title = self.title.lstrip + (title.ends_with?("...") ? "" : "...")
self.title.slice(0,1).capitalize + self.title.slice(1..-1)
errors.add_to_base("Title must start with \"You know you...\"") unless self.title.starts_with? 'You know you'
end
編集 4: macek の編集を試みましたが、まだ未定義のメソッド「capitalize」エラーが発生します。何が間違っているのでしょうか?
def fixlistname!
self.title = title.lstrip
self.title += '...' unless title.ends_with?('...')
self.title[0] = title[0].capitalize
errors.add_to_base('Title must start with "You know you..."') unless title.starts_with?("You know you")
end
編集5:これは奇妙です。以下の行を使用して、未定義のメソッドエラーを取り除くことができます。問題は、最初の文字を数字に置き換えているように見えることです。たとえば、Youのyを大文字にする代わりに、yを 121 に変換します。
self.title[0] = title[0].to_s.capitalize