【发布时间】:2015-09-23 23:36:08
【问题描述】:
用这样的重音创建ruby symbol 有什么缺点吗:
enum tipo: [:fogo, :água]
água 这个词有重音。当这个枚举在表单中被翻译成string时,通过使用.humanize我得到Água而不是Agua(这在葡萄牙语中是错误的)。
对这个问题有什么想法吗?
【问题讨论】:
-
您使用的是哪个 ruby/rails 版本?当我使用humanize、titleize 或capitalize 时,我得到的是“água”而不是“Água”或“Agua”。
-
@MikeCampbell 实际上,当像
Class.tipos一样调用枚举时,会返回Strings和Integers({"fogo => 0, "água" => 1}) 的哈希值。它将符号转换为字符串,这就是.humanize方法起作用的原因。我刚刚检查过了。 -
是的,humanize 是 ActiveSupport 提供的一个字符串方法,但它不会产生“Água”——至少对我来说不是。
-
@MikeCampbell 我重新表述了问题以表明
.humanize用于字符串,而不是符号。我现在只需要知道在符号中使用重音是否有问题。 -
您有点忽略了我的观点,即
humanize没有将带重音的“á”大写,但没关系。不,在符号中使用重音符号没有问题。
标签: ruby-on-rails ruby encoding enums