Je vais essayer d'obtenir des Rails pour mettre en majuscule le premier caractère d'une chaîne, et de laisser tous les autres de la façon dont ils sont. Je suis en cours d'exécution dans un problème où "je suis de New York" est transformé en "je suis de new york."
Quelle méthode dois-je utiliser pour sélectionner le premier caractère?
Merci
EDIT: j'ai essayé de mettre en œuvre ce que macek a suggéré, mais je suis un "undefined method `capitaliser'" erreur. Le code fonctionne très bien sans le tirer profit de la ligne. Merci pour l'aide!
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
EDIT 2: ai Eu de travail. Merci pour l'aide!
EDIT 3: Attendez, non, je n'ai pas... Voici ce que j'ai dans ma liste modèle.
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
EDIT 4: Essayé macek de modifier, et de toujours obtenir un undefined method `capitaliser'" erreur. Que pouvais-je fait de mal?
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
EDIT 5: C'est bizarre. Je suis en mesure de se débarrasser de la non défini erreur de méthode en utilisant la ligne ci-dessous. Le problème est qu'il semble remplacer la première lettre avec un numéro. Par exemple, au lieu de capitaliser les y dans Vous, il tourne le y dans un 121
self.title[0] = title[0].to_s.capitalize