2016-07-15 1 views
0

Я не уверен, как это сделать. У меня есть таблица под названием «животные». Затем я могу добавить изображение для отображения животного.Активная запись/Ruby on Rails -> Удалить изображение, нажав на ссылку: Установить столбцы привязки в NULL через

Я использую это утверждение в виде ракурса для изменения изображения:

f.file_field :attachment, :accept => 'image/jpeg' 

Когда я отправить форму я получил хорошее выглядящее изображение в моем шоу-представлении.

Как я уже сказал, я могу легко изменить изображение, но я точно не знаю, как его удалить. В идеальном мире, который я бы предпочел, я нажму ссылку, и изображение просто удаляется, но остальные атрибуты животных остаются в живых, поэтому следующие столбцы имеют значение NULL, и файл удаляется с сервера:

"attachment_file_name" "attachment_content_type" "attachment_file_size" "attachment_update_at" (вероятно, следует установить на текущую дату, или установить NULL)

Любая помощь apreciated.

+0

Вы используете драгоценный камень скрепки? – rneves

ответ

1

Если вы используете драгоценный камень paperclip, все, что вам нужно сделать, это установить вложение на нуль и сохранить. Как это:

@animal.attachment = nil 
@animal.save 

Подробнее here

В вашем случае, если вы хотите добавить ссылку, чтобы удалить, вы будете создавать маршрут и действие только, чтобы сделать это.

Я предлагаю установить флажок рядом с полем файла и проверить его при обновлении/создании.

+0

Спасибо за ваш ответ. Да, я использую paperclip - но я не знал, что я его использую - так как я взял на себя платформу (всегда сложно, если вы не оригинальный программист). Теперь подсказка с помощью скрепки помогла много. Из-за этого я нашел еще один поток при переполнении стека, где проблема была обсуждена и решена: http://stackoverflow.com/questions/4435826/rails-paperclip-how-to-delete-attachment <- На основании этого я включил проверку в мою форму, с помощью которой можно удалить изображение и все файлы с сервера. Спасибо за ваш ответ и указав меня в правильном направлении! – Donselm