Удалить вложение (аватар) с помощью Devise - PullRequest
0 голосов
/ 30 мая 2020

В моем registrations/edit.html.erb файле просмотра я хотел бы добавить ссылку для удаления текущего аватара (если он прикреплен). У меня получилось что-то вроде этого:

<% if current_user.avatar.attached? %>
    <%= link_to "Remove avatar", { action: :remove_avatar }, method: :put %>
<% end %>

В пользовательском registrations_controller (унаследованном от Devise::RegistrationsController) я определил метод :remove_avatar:

def remove_avatar
    self.resource = resource_class.to_adapter.get!(send(:"current_#{resource_name}").to_key)
    resource.avatar.purge_later
end

Но я Получил эту ошибку, вероятно, из-за отсутствия настроек маршрутов.

Маршрут не соответствует {: action => "remove_avatar",: controller => "registrations",: locale =>: ru}

Что я могу сделать с сможет ли link_to этот метод? Спасибо.

1 Ответ

0 голосов
/ 30 мая 2020

Вероятно, вам понадобится что-то вроде этого

put "remove_avatar", to: "registrations#remove_avatar"

в вашем файле routes.rb.

Может быть, это может стать более беспорядочным из-за вашей структуры каталогов, но это должно работать

...