6
在Sinatra中,我可以測試some_object.class.name ==「哈希」。現在,在提交之後,我必須爲此測試,再加上==「ActiveSupport :: HashWithIndifferentAccess」,以便我的代碼可以工作。爲什麼是這樣,我是否必須更新比較發生的所有地方,還是有更簡單的方法?感謝哈希類型的Rails測試
在Sinatra中,我可以測試some_object.class.name ==「哈希」。現在,在提交之後,我必須爲此測試,再加上==「ActiveSupport :: HashWithIndifferentAccess」,以便我的代碼可以工作。爲什麼是這樣,我是否必須更新比較發生的所有地方,還是有更簡單的方法?感謝哈希類型的Rails測試
從文檔上ActiveSupport::HashWithIndifferentAccess:
這個類有可疑的語義,我們只有它使人們可以寫PARAMS [:鍵],而不是PARAMS [「關鍵」],他們得到同樣的兩個鍵的值。
因此,它是一個從Hash繼承的類,允許您傳遞符號或字符串作爲鍵並返回相同的值。
要解決(和清理)你的測試,你可以只使用下列內容:
some_object.is_a? Hash
如果它是一個哈希或哈希的後裔,這將返回true。
很好,謝謝! – dt1000