使用jquery删除活动存储附件并重新呈现附件帮助吗?最佳实践是什么?

问题描述

我正在尝试删除活动的存储附件,但实际上我不知道如何解决它,因为我遇到许多不同的错误

错误

NoMethodError at /rooms/10/photos/72
====================================

> undefined method `count' for nil:NilClass

app/views/photos/_photos_list.html.erb,line 1

我拥有的代码

视图:photo_upload.html.erb

          <div class="col-md-offset-3 col-md-12">
              <%= form_for @room do |form| %>
                <div class="form-group">
                  <%= form.file_field :photos,multiple: true,class: 'form-control'%>
                </div>
                <%= form.submit 'save',class: 'form-control btn btn-success'%>
            <% end %>
          </div>
          <div id="photos"><%= render 'photos/photos_list' %></div>

部分:photos / _photos_list.html.erb

<% if @photos.count > 0 %>
  <div class="row">
    <% @photos.each do |photo| %>
      <div class="col-md-4">
        <%= image_tag photo,width: 500,class: 'img-thumbnail' %>
        <%= link_to(room_photo_path(@room.id,photo.id),remote: true,method: :delete,data: {confirm: 'are you sure'}) do %>
          <i class="fa fa-trash-o" area-hidden="true"></i>
        <% end %>
      </div>
    <% end %>
  </div>
<% end %>

控制器:photos_controller.html.erb

  def destroy
    @photo = ActiveStorage::Attachment.find(params[:id])
    @photo.purge
    respond_to :js
  end
end

destroy.js.erb $('#photos').html("<%= j render 'photos_list' %>")

型号:room.rb

  has_many_attached :photos

解决方法

问题已解决: 在控制器中发现小错字,应该是这样的: link_to(room_photo_path(photo.record_id,photo),remot...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...