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

問題は、実行中にボタンをクリックしなくても、すべてのオブジェクトが自動的に破棄されることです。どういうわけかアップロードを一覧表示することは可能ですか?ボタンをクリックするだけで、対応するアップロードが削除され(破棄アクションが呼び出されます)、すべてのアップロードではありませんか?

前もって感謝します

編集

私はこの例をファイルのアップロード に使用します。彼は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
4

2 に答える 2

0

ボタンで

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

あなたdata_urlはURLではありません。ファイルが実行されると、内部のすべて<% %>が実行されるため、file.destroyと呼ばれます。

対応file.destroyするURL(のようなものfile_destroy_path(id))に置き換えれば、機能するはずです。

于 2013-03-24T12:26:58.507 に答える
0

1つのボタンを含むフォームを生成するヘルパーを作成できます。

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 に答える