ごめん、ナナメ読みで間違えたこと言ってしまった
behaviorの実行がvalidate前に走らないからrulesで弾かれるってことか

この例だとrulesを外すのが正解なんだろうか
なんかエラー処理的にあんまりやりたくないね(behaviorの実装を信じすぎ)
どっちかって言うと、俺だったらrulesは残して、afterConstructでもbeforeValidateでも一旦初期化すると思う
rulesはフォーム入力したデータを検証するかどうかじゃなくて、DBのルールと合わせておくほうが個人的に自然だと思うな