使用这样的重音创建ruby
symbol
是否有任何缺点:
enum tipo: [:fogo, :água]
单词água
有重音。如果在表单中翻译此枚举,将其设为string
,则使用.humanize
我会Água
而不是Agua
(葡萄牙语错误)。
对此事有何想法?
答案 0 :(得分:1)
符号是内部字符串。因此,在理想世界中,永远不应该存在从外部字符串(由用户给出)到符号的转换。因此,符号中的重音符号没有实际用途。这可能是一个类似的问题,如“我应该给我的方法英文名称或葡萄牙名字”。但是,如果使用重音符号,则应注意所有源文件都使用相同的(希望是utf-8)编码。否则,在使用不同编码从源文件访问符号时,您将遇到问题。 所以我的建议是:像通常那样使用方法名称,只使用符号的ASCII字符。
“违反此规则”并将符号转换为表单中的字符串的Rails行为只是rails约定优于配置的一部分。我会自己编写表单(或使用rails本地化方法),而不是在符号中使用重音符。