2013-03-24 49 views
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%> 

的問題是,在運行它,它會自動銷燬所有對象無我點擊按鈕。是否有可能以某種方式列出上傳,只有通過點擊按鈕,相應的上傳將被刪除(銷燬行動將被稱爲),而不是所有的上傳?

在此先感謝

編輯

我用這個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(個體經營),並得到這個:

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

回答

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) %> 
+0

它顯示了一個錯誤:未定義的方法'button_to_delete_file'爲#<#:0xa5615d0>):.但是我對文件的類型看起來很好。它是Uploads,正確的類 – Tonja 2013-03-24 16:10:35

+0

@Katja這個方法應該放在'UploadsHelper'模塊內的'app/helpers/uploads_helper.rb'中。 – 2013-03-24 16:13:33

+0

смекнула。íпасиботебе-) – Tonja 2013-03-24 16:35:24

0

在按鈕

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

您的data_url不是網址。執行文件時,執行<% %>中的所有內容,因此調用file.destroy

用相應的URL替換file.destroy(看起來像file_destroy_path(id)),它應該工作。

+0

我想這應該是file.file_path(個體經營)但是當我點擊按鈕時,什麼都沒有發生 – Tonja 2013-03-24 14:54:09

+0

@Katja不,有*非常*可能在路徑中有'destroy'這個詞。在控制檯'rake routes'中運行,你會看到所有可用路徑的名稱。尋找一個除了'文件'對象類型的'destroy'動作 – alestanis 2013-03-24 15:45:27

+0

@Katja我還認爲,爲了發送DELETE'請求(像你需要的那個),你必須把按鈕放在裏面一個形式 – alestanis 2013-03-24 15:46:13