ケントのブログ(ふわふわ)

技術メモ、アイドル、演劇、美術など分からないなりに

railsのファイルアップロードでファイルサイズをバリデーション

libにfile_size_validator.rbを配置

https://gist.github.com/chrisbloom7/1009861からコピペしてlib内にfile_size_validator.rbという名前で保存。

config/application.rbに読み込み設定

config/application.rbにfile_size_validator.rb下記を追加してファイルを読み込ませる。

config.autoload_paths += %W(#{config.root}/lib)

libの下にディレクトリがある場合はこんな感じ

config.autoload_paths += %W(#{config.root}/lib/dir)

バリデーションの記述方法

validates :file, :presence => true, :file_size => {:maximum => 10.megabytes.to_i}

[0.5.megabytes.to_i]とかって書き方もOK

参考:https://github.com/carrierwaveuploader/carrierwave/wiki/How-to%3A-Validate-attachment-file-size