创建带重音的Ruby符号是不好的做法吗?

时间:2015-09-23 23:36:08

标签: ruby-on-rails ruby encoding enums

使用这样的重音创建ruby symbol是否有任何缺点:

enum tipo: [:fogo, :água]

单词água有重音。如果在表单中翻译此枚举,将其设为string,则使用.humanize我会Água而不是Agua(葡萄牙语错误)。

对此事有何想法?

1 个答案:

答案 0 :(得分:1)

符号是内部字符串。因此,在理想世界中,永远不应该存在从外部字符串(由用户给出)到符号的转换。因此,符号中的重音符号没有实际用途。这可能是一个类似的问题,如“我应该给我的方法英文名称或葡萄牙名字”。但是,如果使用重音符号,则应注意所有源文件都使用相同的(希望是utf-8)编码。否则,在使用不同编码从源文件访问符号时,您将遇到问题。 所以我的建议是:像通常那样使用方法名称,只使用符号的ASCII字符。

“违反此规则”并将符号转换为表单中的字符串的Rails行为只是rails约定优于配置的一部分。我会自己编写表单(或使用rails本地化方法),而不是在符号中使用重音符。