我有以下结构:
<% 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
答案 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) %>