Railsのモデルのvalidates_xxxメソッドの扱いについて
Railsやってると面白くなってついモデル50個ぐらい作っちゃったんだけど、モデルのvalidationをvalidates_XXXでやっていると、たとえばあるのアクションからは、validates_presence_ofだけでvalidationしたいのに別のアクションからの場合は、validates_presence_ofとvalidates_length_ofで検証したいなんて事があると思うんだけど、これ、他の人はどうやって解決しているんだろう。
いろいろ考えた結果、いくつか案はあるけど決定打にかける。
- 基本的なものだけvalidates_xxxでやって、それ以外はcontrollerでifとか正規表現とかでゴリゴリvalidationを実装する。
- validates_xxxのバリエーションごとにモデルを分ける
- 基本的なvalidates_xxxは基底のモデル
- 特殊なアクションからは基底のモデルを継承したサブクラスでvalidate_yyyを加える
(最初これやってモデル数がさらに増加しました。)
- アクション毎に必要なvalidates_xxxをmodule化してアクション毎に読み込む
- validate_xxxを(Railsレシピにのっていたんですが)非ActiveRecordにも対応できるように改造してコントローラでvalidateを実施する。
だれかいい方法しりませんか?