「開始日は終了日より前でなければならない」といった、複雑な条件検証をモデル内で行うためのメソッドはどれか。

validates(複数形)は標準バリデータ用だが、validate(単数形)はカスタムメソッドを登録して任意の検証ロジックを実行するために使う。