1
3

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でアップロードした画像の削除方法(devise使用)

Last updated at Posted at 2021-01-08

carrierwaveでアップロードしたユーザー画像を削除したいと思い、公式のgithubを見た所、

<%= f.check_box :remove_avatar %>
Remove avatar

このようなチェックボックスを設置することで削除できると書かれていたのでやってみました。簡単!
すると以下のようなエラーが。

Unpermitted parameter: :remove_image

許可されていないということは、削除する際にはストロングパラメーターに:remove_imageというカラムを追加する必要があるようです。

##deviseのストロングパラメーターにカラムを追加

今回私はユーザー周りにdeviseを使用しており、画像のアップロードや削除はユーザー編集時に行う仕組みにしています。
なのでdevise_parameter_sanitizer.permit(:account_update,)のキーに:remove_imageを追加して許容する必要がありました。

controllers/application_controller.rb
class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?



  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:account_update, keys: [:name, :profile, :image, :remove_image])
  end
end

これによりエラーが消え、無事画像の削除ができるようになりました!

1
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?