ActiveSupportの派生でHashのようなHashじゃないものがあります。そういうのもひっくるめるとkind_of?を使った方が安全です。