アップロードファイルのサイズやcontent_typeなど、制限する場合があると思います。標準のvalidatorでは足りないので、自前で書いたり、carrierwaveなんかであればuploaderに制限を書いたりします。

モデルでファイル関連のvalidatorを使えるようになるfile_validatorsというのがあるので、簡単に紹介。

百聞は一見にしかずだと思うので、サンプルコードを紹介。

1class Profile < ActiveRecord::Base
2  validates :avatar, file_size: { less_than_or_equal_to: 100.kilobytes },
3                     file_content_type: { allow: ['image/jpeg', 'image/png'] }
4end

file_sizefile_content_typeといったバリデーションができるようになっています。

これによって指定のサイズ以上は受け付けないとか、変なファイルを受け付けないとかの制御ができます。

file_content_typeについては正規表現の指定も可能で、↓のように書くと画像全般を許可できそうです。

1validates :avatar, file_content_type: { allow: /^image\/.*/ }

エラーメッセージのi18nにも対応しているようなので実用性はありそうだし、細々とだけどメンテもされているみたいなので使ってみても良さそうという感じです。