【问题标题】:Rails test for hash typeRails 测试哈希类型
【发布时间】:2012-06-23 03:58:09
【问题描述】:

在 Sinatra 中,我可以测试 some_object.class.name == "Hash"。现在,在提交之后,我必须对此进行测试,加上 == "ActiveSupport::HashWithIndifferentAccess",我的代码才能正常工作。为什么会这样,我是否必须更新发生这种比较的所有地方,还是有更简单的方法?谢谢

【问题讨论】:

    标签: ruby-on-rails hash


    【解决方案1】:

    来自ActiveSupport::HashWithIndifferentAccess 上的文档:

    这个类有可疑的语义,我们只使用它以便人们可以编写 params[:key] 而不是 params['key'] 并且他们为两个键获得相同的值。

    因此,它是一个继承自 Hash 的类,允许您将符号或字符串作为键传递并返回相同的值。

    要修复(和清理)您的测试,您可以使用以下内容:

    some_object.is_a? Hash
    

    如果它是 Hash 或 Hash 的后代,这将返回 true。

    【讨论】:

      猜你喜欢
      • 2011-10-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多