有时我会看到变量名的开头和结尾带有双下划线。例如:
Article.__elasticsearch__
Ruby 变量名中是否存在与双下划线相关的命名约定?
首字母下划线或双下划线基本上表示 “特殊/避免覆盖”——意味着它的目的是减少 其他人可能定义方法/属性的可能性 一样的名字。最常见的情况是 __send__。
首字母下划线或双下划线基本上表示 “特殊/避免覆盖”——意味着它的目的是减少 其他人可能定义方法/属性的可能性 一样的名字。最常见的情况是
__send__
来自Ruby论坛
ElasticSearch gem 的作者在我看来是错误的。在帖子的最后,Ruby 社区中知名的 Avdi Grimm 不同意 OP。
有一个原因你还没有看到它并且它对你来说看起来很奇怪。因为它不符合习惯。