Railsでアプリを作ると、必ず困ることの一つにActiveRecordのvalidatorがあります。 一般のユーザ登録の時はnameが必須だけど、管理画面からはなくても登録できるようにしたい、というケースが良くあります。 その場合、validates :name, presence: true, if: :require_name? という風にifオプションで対応することになります。 しかし、すべてのvalidatesにこれを追加するのはちょっと違うなぁとも思います。 validatesにscopeオプションを追加して、save_with(:name)みたいメソッドを定義し、そこで使うvalidatorを選択すればいいかなとか考えましたが、もっとシンプルにobjectにvalidatorをmix-inで追加できるようにしてみました。 Ruby 1.9.2からあるObject#singl