删除功能不适用于Rails应用程序中的Active Storage映像

问题描述 投票:1回答:1

我正在尝试为通过Rails应用中的活动存储上传的图像创建删除功能。

我正在使用devise进行注册,使用邪恶的向导进行多步操作,并使用cancancan进行授权。

但是我遇到了这个错误,我不知道如何使它起作用。我可以看到它与路线有关,但我不明白问题是什么以及如何解决。任何帮助将非常感激。

uninitialized constant RegistrationsController我的表格

<%= form_for @user, url: wizard_path, method: :put do |f| %>

<% if @user.clinic_images.attached? %>

<% @user.clinic_images.each do |image| %>

<%= image_tag(image.variant(resize: "100x100")) %>
<%= link_to ‘Delete this image’, delete_image_attachment_registration_url(image.signed_id),

method: :delete,

data: { confirm: ‘Are you sure?’ } %>

<% end %>

<% end %>

<% end %>

Routes.rb

Rails.application.routes.draw do

mount RailsAdmin::Engine => ‘/admin’, as: ‘rails_admin’

devise_for :users, controllers: {:registrations => “users/registrations”}

resources :registration_steps


root ‘pages#index’

get ‘about’, to: ‘pages#about’

get ‘team’, to: ‘pages#team’

get ‘faqs’, to: ‘pages#faqs’

get ‘faqspractitioners’, to: ‘pages#faqspractitioners’

get ‘faqsusers’, to: ‘pages#faqsusers’

get ‘login’, to: ‘pages#login’

get ‘signup’, to: ‘pages#signup’

get ‘search’, to: ‘pages#search’


resources :registrations do

member do

delete :delete_image_attachment

end

end

end

registrations_controllers.rb

def delete_image_attachment

@image = ActiveStorage::Blob.find_signed(params[:id])

@image.purge_later

redirect_to root_path

end

ruby-on-rails routes rails-activestorage
1个回答
0
投票

您的路线资源设置有误。由于您正在使用键盘resources,因此它应该为resources :registrations do。因为Rails试图找到RegistrationController,而不是RegistrationsController。

您可以在此处了解更多信息:https://rubyinrails.com/2019/04/16/rails-routes-difference-between-resource-and-resources/


0
投票

我已将路线资源更改为

  resources :registrations do
    member do
      delete :delete_image_attachment
    end
  end

但是我仍然收到未初始化的常量RegistrationsController错误

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.