Я использую best_in_place для обновления имен фотографий, которые я создал с помощью paperclip. Имя файла обновляется в базе данных, но фактически сохраненный файл (/ public/system/photos/attachments/...) не обновляется, чтобы отобразить измененное имя.Почему файлы не обновляются? (Rails4)
В результате приложение ищет новое имя файла, который не существует:
нет маршрута матчей [GET] «/ система/фотографии/вложения/000/000/011/оригинал/new_file_name. JPG»
Фото контроллер:
def update
@photo = Photo.find(params[:id])
respond_to do |format|
if @photo.update_attributes(photo_params)
format.html { redirect_to(new_photo_path, :notice => 'Photo was successfully updated.') }
format.json { respond_with_bip(@photo) }
else
format.html { render :action => "edit" }
format.json { respond_with_bip(@photo) }
end
end
end
Фото (новый) вид:
<% @photos.each do |photo| %>
<%= best_in_place photo, :attachment_file_name, :type => :input %>
<% end %>
почти .. я пробовал свой код, но я думаю, что он отсутствовал после File.rename. Я попытался отредактировать ваш ответ, но не могу, потому что это меньше шести символов. Может быть, вы могли бы попробовать? Тогда я могу отметить ваш вопрос как принятый. – Sheldon
@ Шелдон 'end' не пропущен для' if'. Я выровнял код так, чтобы вы могли сопоставлять блоки. –
@ KirtiThorat Спасибо за прекрасное обходное решение – HackerKarma