[Rails]carrierwaveでアップロードした画像の削除方法(devise使用)
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
これによりエラーが消え、無事画像の削除ができるようになりました!
Author And Source
この問題について([Rails]carrierwaveでアップロードした画像の削除方法(devise使用)), 我々は、より多くの情報をここで見つけました https://qiita.com/TO-TO/items/9ee254af49a6249cf1e9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .