LoginSignup
1
0

More than 1 year has passed since last update.

【rails】active_storageに簡単にバリデーションを追加

Posted at

画像投稿を簡単に導入できるactive_storageというGemがあります。画像投稿は簡単に実装できるようになりますが、PDFなども画像として投稿可能なため、思わぬエラーの原因になり得ます。そこで、バリデーション設定するにアウトプットします。

スクリーンショット 2022-07-24 7.41.49.png

結論

Active Storage ValidationsというGemを導入すると、既存のvalidateと同じような記述でバリデーションを追加できます。もう1つの方法は自身でバリデーションのメソッドを定義する方法ですが、今回こちらは紹介しません。
導入方法

gemfile
# Rails 5.2 and Rails 6バージョンのみ利用可能
gem 'active_storage_validations'
#記述後bundle install

やったこと

画像ファイルの拡張子に制限をかけることと、大きすぎる画像は投稿できないようにしました。

model
validates :image, content_type: {in:[:png, :jpg, :jpeg], message: "はpng, jpg, jpegいずれかの形式にして下さい"},
  size: { between: 1.kilobyte..4.megabytes , message: '画像容量が大きすぎぃ、4megabytes以下でおなしゃす' }

その他設定できるバリデーションは「ファイルの寸法(横幅、縦幅)、アップロードする画像数、画像の縦横比、画像が存在するか否か」があります。

参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0