0

我有以下结构:

<% if @uploads%>
<br class="clear" />
<br />

<% @uploads.each do |file| %>



    <div class="file_information"> 

      <p><%= file.file_name %></p>



      <td class="Chip_info">
      <a href="<%=file.info%>" class= "btn btn-mini btn-info">Info</a>    
      </td>

      <td class="Pic">
      <a href="<%=file.image%>" class= "btn btn-mini btn-info">Pic</a>    
      </td>

      <td class="Hist">
      <a href="<%=file.hist%>" class= "btn btn-mini btn-info">Hist</a>    
      </td>

      <td class="Hist2">
      <a href="<%=file.hist2%>" class= "btn btn-mini btn-info">His2</a>    
      </td>


        <td class="delete">
        <button class="btn btn-mini btn-danger"  data-url="<%=file.destroy%>"> 
          <i class="icon-trash icon-white"></i>

        </button>

      </td> 



    </div>
  <%end%>
<%else%>

<br class="clear" />
<br />
<%end%>

问题是,在运行它时,它会自动销毁所有对象,而无需我单击按钮。是否有可能以某种方式列出上传,并且仅通过单击按钮,相应的上传将被删除(将调用销毁操作)而不是所有上传?

提前致谢

编辑

我使用此示例进行文件上传 他使用以下方法删除文件:

模型:

"delete_url" => upload_path(self)

看法:

 <td class="delete">
        <button class="btn btn-danger"  data-url="{%=file.delete_url%}">
          <i class="icon-trash icon-white"></i>

        <input type="checkbox" name="delete" value="1">
      </td>

所以我尝试了

data-url="<%=file.upload_path(self)%>"> 

但它不起作用,所以我从控制器打印了 file.upload_path(self) 并得到了这个:

/uploads/%23%3CUploadsController:0xaf61b34%3E
4

2 回答 2

0

您可以创建一个助手来生成包含一个按钮的表单:

def button_to_delete_file(file)
  form_tag file_path(file), :method => :delete, :style => "display:inline;" do
    button_tag :class => "btn btn-mini btn-danger" do
      content_tag :i, " ", :class => "icon-trash icon-white"
    end
  end
end

并像这样使用它:

<%= button_to_delete_file(file) %>
于 2013-03-24T15:56:21.617 回答
0

在按钮

<button class="btn btn-mini btn-danger"  data-url="<%=file.destroy%>">

data_url不是一个网址。当文件被执行时,里面的所有东西都<% %>被执行,所以file.destroy被调用。

替换file.destroy为相应的 URL(看起来像file_destroy_path(id)),它应该可以工作。

于 2013-03-24T12:26:58.507 回答