【问题标题】:Make all Ruby Hashes HashWithIndifferentAccess使所有 Ruby 哈希 HashWithIndifferentAccess
【发布时间】:2012-12-30 22:17:35
【问题描述】:

有没有办法让你在 Ruby On Rails 中处理的所有哈希都成为 HashWithIndifferentAccess?有很多次我尝试使用符号而不是字符串来访问哈希,例如 Model.attributes。

谢谢!

【问题讨论】:

  • 覆盖 Hash 的初始化器...但为了方便我不会使用标准 Class

标签: ruby-on-rails ruby


【解决方案1】:
::Hash = HashWithIndifferentAccess

不过,这个主意很糟糕。

【讨论】:

  • 大声笑,更好的解决方案是打开 Hash 类,修改 def [] 以便如果找不到符号化版本,看看它是否存在于字符串?有没有一种好方法可以做到这一点,它只影响我直接处理的哈希?还是我不应该尝试让这件事变得更容易,因为我最终会做一些可怕的事情?
  • 为什么这是个坏主意?你能覆盖{ }对象,即{ }.class == HashWithIndifferentAccess吗?
猜你喜欢
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2014-03-10
  • 2017-02-22
  • 2011-07-01
  • 1970-01-01
相关资源
最近更新 更多