我试图让 Rails 将字符串的第一个字符大写,而让其他字符保持原样。我遇到了一个问题“我来自纽约”变成了“我来自纽约”
我将使用什么方法来选择第一个字符?
Thanks
编辑: 我试图实现 macek 的建议,但是我得到了一个 “未定义的方法’资本化’”错误。代码在没有大写行的情况下工作得很好。谢谢你的帮助!
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 的编辑,仍然得到一个 未定义的方法‘大写’”错误。我能做错什么?
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: 这太奇怪了。通过使用下面的代码行,我可以消除未定义的方法错误。问题是它似乎用数字代替了第一个字母。例如,它没有将 你中的 嘿大写,而是将 嘿变成了121
self.title[0] = title[0].to_s.capitalize