0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails carrierwave】画像アップロード 未選択状態でもエラー画面に遷移しない方法

Posted at

解決方法

requireではなく、fetchメソッドを使用することで、paramsがnilの場合を許容する。

private

  def food_record_params
    params.fetch(:food_record, {}).permit(:image)
  end

使用技術

carrierwaveを使用して、画像アップロード機能を実装。

gem 'carrierwave'

carrierwaveの使用方法
https://qiita.com/uchida0331/items/f99aba46fd1a6df9e753

問題点

画像アップロード画面で、画像未選択の状態で登録ボタンを押下すると、エラー画面に遷移する事象が発生。
スクリーンショット 2020-12-18 0.28.01.png

スクリーンショット 2020-12-18 0.26.10.png

原因

エラーログの通り、requireメソッドではparameterに値が入っていないと、エラーになってしまう。
requireは、paramsに値が入っていない場合に、例外を出すためのメソッドだからである。

参考資料

ruby2.7リファレンス
https://docs.ruby-lang.org/ja/latest/method/Hash/i/fetch.html

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?