[ Rails : アンチパターン ] Validation しすぎで登録困難:下書きなどステータスに応じたバリデーションチェック

Railsでデータ運用を長期にしているとModelにValidation入れておけばよかった!!という機会は必ず発生すると思います。

後にジャンクデータであるならまだしも、そのデータの為に他との整合性取れなくなったりなどなど。

基本、Modelの初期段階でValidationとカラム制約はとても必須事項になってくるかと。

ただ、設計段階でValidationを意識しすぎるとサービスにかえって運用をきたすものがあります。
例えば記事関連なんかや、会員データの登録関連などなど。

会員データなら離脱率落ちる落ちますし、この登録データを無しにした時のコンバージェンスは?といったA/Bテストができなくなります。
記事データだと、全データ入れないと投稿できないのは、投稿者やサイト管理者にあとで必ず文句言われますね。

そこで、Validationしすぎ自体はアンチパターンにならないのですが、登録に「下書き/公開」、「仮登録/本登録」といったステータスでValidationを持たせる方法を記載します。

必要データは通常のValidationをして、「公開」ステータスのものだけ、ステータスに応じたValidationをかける感じになります。

余計なデータは入りやすくなりますが、サービスレベルを保つ上で結構有用性が高いテクニックかと。