文字列に対して*.to_i
をすると、数値の0に変換される。
これを利用して整数チェックを行う。
※コメントで指摘を受けました
文字列"1a"など、数値で始まるものは0ではなく先頭の数値に変換されます。
t = 1
puts t.to_i.to_s == t.to_s # true
t = "1"
puts t.to_i.to_s == t.to_s # true
t = "abc"
puts t.to_i.to_s == t.to_s # false
t = "1a"
puts t.to_i.to_s == t.to_s # false