【ruby】Dateクラスで正しい暦日付かどうかを判定するには

今日はrubyの話。
rubyのDateクラスを用いて、正しい日付かどうかを判定する方法。
一応実装は出来ていますが、あまり良い解決策でないように感じるので、ご助言頂けると嬉しいです!

# 今日の日付を取得

date = Date.today
# 引数で渡した年月日が正しい日付かどうかを判定する。
# 正しい暦日付であれば、相当するユリウス日を返す。そうでないなら、nilを返す。
# ちなみに、valid_civil?メソッドを使っても全く同じ結果になる。

if Date.valid_date?(2000, 8, 8)
  p "true"
else
  p "false"
end

#=> "true"

if Date.valid_date?(2000, 8, 38)
  p "true"
else
  p "false"
end

#=> "false"
# params[:date]で文字列として日付が渡される場合。
# 例えば、"2000-08-08"など。

date = Date.parse(params[:date])

# parseできないパラメータ"2000-08-38"などが送られてくるとエラーを起こしてしまう。
# 以下は"0000-00-00"という形でパラメータが送られてくるという前提のもとでの実装である。
# 正しい暦日付であれば、parseされてDateオブジェクトが返る。
# 正しくない暦日付であれば、falseが返る。

date_ary = params[:date].split(/-/)      #=> ["2000", "08", "38"]

if Date.valid_date?(date_ary[0].to_i, date_ary[1].to_i, date_ary[2].to_i)
  Date.parse(params[:date])
else
  return false
end
  • これで一応、不正な日付パラメータのチェックはできた。
  • 懸念点
    • 前提として"0000-00-00"という形で送られてくることを想定している。
    • コードに無理やり感が否めない。

より良いコードがあればご教示頂けますと幸いですm(__)m

最後までお読み下さり、ありがとうございました。