バリデーションに関するTipsその2です。 これも意外に情報が書かれていないのですが、Model::validates()とModel::invalidate()の組み合わせ利用では順番があるようで、気をつけないと正しいバリデーション処理が行えないようです。 validates()は「モデルに記述したバリデーションルールを実行する」メソッドで、save()等でも自動的に実行されますが直接呼ぶことで明示的に、事前に処理することが出来ます。 また、invalidate()は、独自に値チェックなどを行った結果で、エラーメッセージを出したい場合に用いるメソッドで、フォーム内のインプットの各アイテムに手動でメッセージを出したい場合に使います。 これらを組み合わせる場合、まずvalidates()が先に実行されている必要があるようです。逆にinvalidate()がvalidates()より先に実行さ