RoR,点击ob按钮销毁对象

时间:2013-03-24 12:24:04

标签: ruby-on-rails

我有以下结构:

<% 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%>

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

提前致谢

修改

我用example for file upload 他使用followint删除文件:

模型:

"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

2 个答案:

答案 0 :(得分:0)

按钮

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

您的data_url不是网址。执行文件后,<% %>内的所有内容都会执行,因此会调用file.destroy

file.destroy替换为相应的网址(看起来像file_destroy_path(id))并且它应该有效。

答案 1 :(得分: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) %>