引用频繁的RIP Hash rocket post似乎暗示Hash Rocket语法(:foo => "bar"
)不赞成使用新的Ruby JSON样式哈希(foo: "bar"
),但是我找不到任何明确的引用,说明Hash Rocket表单实际上已经在Ruby 1.9中被弃用/未经过修改。
答案 0 :(得分:129)
该博文的作者过于戏剧性和愚蠢,=>
是still quite necessary。特别是:
:'where.is' => x
有效但'where.is': x
不是。 Ruby 2.2修复了这个问题所以你可以在Ruby 2.2 +中说'where.is': x
。:$set => x
有效但$set: x
不有效。在Ruby 2.2+中,您可以使用引号解决此问题:'$set': x
将做正确的事。's' => x
有效但's': x
完全不同。当然,你可以用明显的方式解决上述问题:
h = { }
h[:'where.is'] = 'pancakes house?'
# etc.
但这只是丑陋而且没必要。
火箭不会在没有摧毁Ruby的哈希的情况下去任何地方。