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



用这样的重音创建ruby symbol有什么缺点吗?

enum tipo: [:fogo, :água]

单词água有重音。当这个枚举被翻译为string时,通过使用.humanize,我得到Água而不是Agua(这在葡萄牙语中是错误的)。

对这件事有什么想法吗?

符号是内部字符串。因此,在理想情况下,不应该将外部字符串(由用户提供)转换为符号。所以符号中的重音并没有真正的用法。这可能是一个类似于"我应该给我的方法取英文名还是葡萄牙语名"的问题。但是,如果使用重音,则应该注意所有源文件都使用相同的编码(最好是utf-8)。否则,您将在访问具有不同编码的源文件中的符号时遇到问题。所以我的建议是:只使用ASCII字符作为符号,就像你通常为方法名所做的那样。

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

相关内容

最新更新