Ruby on rails 字符串大小写无效

Ruby on rails 字符串大小写无效,ruby-on-rails,ruby,capitalization,Ruby On Rails,Ruby,Capitalization,字符串大写不起作用的原因是什么 数据库列: t.string "name", limit: 255 例如: flower_name = Flower.find_by(id: 1).name #=> "chamomile©" 尝试资本化(获得相同的输出): 检查是否为字符串: flower_name.is_a?(String) #=> true 仅适用于ASCII字符。您的字符串是否有可能包含非ascii字母 试一试 如果您使用的是Rails>=3,则方法可能会对

字符串大写不起作用的原因是什么

数据库列:

t.string   "name",       limit: 255
例如:

flower_name = Flower.find_by(id: 1).name #=> "chamomile©"
尝试资本化(获得相同的输出):

检查是否为字符串:

flower_name.is_a?(String) #=> true
仅适用于ASCII字符。您的字符串是否有可能包含非ascii字母

试一试

如果您使用的是Rails>=3,则方法可能会对您有所帮助

 'æ-ý'.mb_chars.upcase

 => "Æ-Ý"
如果您未使用Rails,您可以:

  • 直接使用gem:

    需要“活动\u支持/core\u ext/string/multibyte”

  • 试试宝石


我希望你能在这个类似的问题中找到答案:

你怎么做
flower\u name.chars
flower\u name.codepoints
返回?有没有可能有人推翻了
大写方法?在控制台中做一个简单的测试:flower\u name=“John do”,再次尝试大写。如果不起作用,该方法可能会被覆盖。您可以移除尽可能多的宝石,然后再试一次,看看消除是否能修复它。非常感谢!你的问题不包括任何非ASCII字符。我遗漏了什么吗?出于安全原因,我更改了一个输出字。但你是对的,我将编辑我的问题,为将来的读者添加一个非ASCII字符。谢谢你,Stefan@Zelenka
capitalize
只影响第一个字符,即
“洋甘菊”)。capitalize
返回
“洋甘菊”
,正如预期的那样……Stefan,你能帮我举个好例子吗?我不知道为什么
.mb\u chars.capitalize.to\u s
对我的情况有帮助
flower_name.mb_chars.capitalize.to_s
 'æ-ý'.mb_chars.upcase

 => "Æ-Ý"