Некоторое время назад я пытался удалить вложения активного хранилища, поэтому я следую ответу на этот вопрос: Очистка/удаление вложений в Rails 5.2 Active Storage
Но после этого:
def delete_image_attachment
@image = ActiveStorage::Blob.find_signed(params[:id])
@image.purge
redirect_to collections_url
end
Я начинаю получать эту ошибку каждый раз, когда я вхожу в представление с изображениями или ссылкой на метод уничтожения:
Поэтому немного меняю код:
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 %>
Это работает для уже существующих транспортных средств, но когда я создаю новое транспортное средство, одна и та же ошибка появляется в каждом представлении с изображением этого транспортного средства.
Кто-нибудь знает, что это за ошибка и как ее исправить? Кроме того, есть ли способ удалить все данные из активного хранилища, например, сбросить таблицу? Благодарю вас!
if img.attached?
или что-то в этом роде. Проверьте документы ActiveStorage, чтобы узнать, как проверить, существует ли вложение. - person iGian   schedule 04.07.2018signed_id
? - person Anand   schedule 04.07.2018@image = ActiveStorage::Blob.find_signed(params[:id])
на@image = ActiveStorage::Attachment.find(params[:image_id])
, как я сказал в вопросе. Я думаю, что первый код уничтожит что-то в таблице activestorage, я не знаю... Может быть, есть какой-то способ сбросить таблицы, но я не знаю, как это сделать. - person Proz1g   schedule 04.07.2018ActiveStorage::Attachment
иActiveStorage::Blob
- person iGian   schedule 04.07.2018