неопределенный метод sign_id для nil: NilClass - PullRequest
0 голосов
/ 04 июля 2018

Некоторое время назад я пытался удалить вложения активного хранилища, поэтому следую ответу на этот вопрос: Rails 5.2 Очистка / удаление вложений активного хранилища

Но после этого:

def delete_image_attachment
  @image = ActiveStorage::Blob.find_signed(params[:id])
  @image.purge
  redirect_to collections_url
end 

Я получаю эту ошибку каждый раз, когда вхожу в вид с изображениями или ссылкой на метод уничтожения:

enter image description here

Итак, я немного изменил код:

routes.rb

match 'vehicles/:id/:image_id' => 'vehicles#delete_image_attachment', :via => :delete, :as => :delete_image_attachment

vehicles_controller.rb

def delete_image_attachment
  @image = ActiveStorage::Attachment.find(params[:image_id])
  @image.purge
  redirect_back(fallback_location: vehicles_path)
end

из-за того, что я хочу удалить изображение

<% @vehicle.images.each do |img| %>
  <%= image_tag img %>
  <%= link_to delete_image_attachment_url(@vehicle, img), method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %>

Такого рода работы для транспортных средств, которые уже существовали, но когда я создаю новое транспортное средство, такая же ошибка появляется в каждом представлении с изображением этого транспортного средства.

Кто-нибудь знает, что это за ошибка и как ее исправить? Кроме того, есть ли способ удалить все данные из активного хранилища, как сброс таблицы? Спасибо!

...