我試圖驗證在哈希某些鍵的值:驗證哈希鍵/值
response[:payment_status] == 'Completed' && response[:receiver_email] == '[email protected]' && response[:foo] == 'Bar'
雖然上述方法效果我敢肯定有一個更好的解決方案。如果我添加額外的鍵/值我想驗證,我會討厭有一個非常長的路線。
P.S:我應該提到我想要一個簡單的真/假返回。
我試圖驗證在哈希某些鍵的值:驗證哈希鍵/值
response[:payment_status] == 'Completed' && response[:receiver_email] == '[email protected]' && response[:foo] == 'Bar'
雖然上述方法效果我敢肯定有一個更好的解決方案。如果我添加額外的鍵/值我想驗證,我會討厭有一個非常長的路線。
P.S:我應該提到我想要一個簡單的真/假返回。
您可以創建期望鍵/值的哈希值,然後映射輸入哈希值:您希望
expected = {'payment_status' => 'Completed', 'receiver_email' => '[email protected]' ... }
valid = expected.keys.all? {|key| response[key] == expected[key]}
這可能會幫助您與使用其他哈希來定義結構驗證散列/類型(也有嵌套哈希作品):
如果你想每個元素是否相等,有一個優雅的解決方案:
response.slice(:payment_status, :receiver_email, :foo) == { :payment_status => 'Completed', :receiver_email => '[email protected]', :foo => 'Bar'}
就我而言,我需要比較不平等。它可以通過調用BasicObject#instance_eval
來完成。
然後寫道:
response.instance_eval{ |hash| hash[:payment_status] != 'Pending' && hash[:receiver_email] == '[email protected]' && hash[:boolean_result] }
你說的哈希是什麼意思?我沒有看到任何。 – bitmask 2010-08-28 18:24:49
響應哈希。 – resetability 2010-08-28 18:28:44