2016-09-16 4 views
0

私のモデルからツイートを削除しようとしています。ここでRails - チェックボックスがチェックされている場合にのみ特定のアイテムを削除します。

はスクリーンショットです:ここでは

enter image description here

は、私の見解では、コードの始まりである:=>ここで

<% @twits.each do |twit| %> 
    <li> 
    <%= link_to "#{twit.link}", twit_path(twit) %> | Engagement => <%= twit.engagement %> | <%= twit.like %> likes | <%= twit.retweet %> retweets | on <%= twit.first_date %> 
    <%= check_box_tag("delete[#{twit.id}]",1) %> - 
    <%= link_to twit_path(twit) do %> 
     <i class="glyphicon glyphicon-eye-open"></i> 
    <% end %> - 
    <%= link_to twit_path(twit), method: :delete do %> 
     <i class="glyphicon glyphicon-trash"></i> 
    <% end %> 
    </li> 
<% end %> 

EDITは、私のコントローラはアクションを破壊する非常に基本的なものです。

def destroy 
@twit.destroy 
redirect_to twits_path 
end 

ありがとうございました!

+0

コントローラを投稿できますか?あなたの破壊行為がないと思っています。 –

+0

@AfolabiOlaoluwaAkinwumi私はちょうど私の記事を更新しました、ありがとう! – Eric

+0

は、JS提案の回答と一緒に行ってください。しかし、チェックボックスで複数を編集/削除する状況にあなた自身がある程度気付いた場合、このビデオはあなたを軌道に乗せるでしょう。 http://railscasts.com/episodes/165-edit-multiple?view=asciicast –

答えて

0

これにはJavascriptが必要です。リンクを削除するにはclassidを割り当ててください。

<%= link_to 'javascript:void(0);', class: 'delete-link', data: { id: "#{twit.id}" } do %> 
    <i class="glyphicon glyphicon-trash"></i> 
<% end %> 
<%= link_to twit_path(twit), method: :delete, class: 'hidden', id: "twit_#{twit.id}" %> 

CSS:

.hidden{ 
    display: none; 
} 

JS:

$('.delete-link').on('click', function(e){ 
    var twit_id = $(this).attr("data-id"); 
    if($("#delete_" + twit_id).is(':checked')){ 
    $("#twit_" + twit_id).trigger('click'); 
    }else{ 
    alert('Please check the checkbox!') 
    }  
}); 

この情報がお役に立てば幸い!

+0

頭をアップしてくれてありがとう!私はJSを全くマスターしないので、JS部分をどこに追加すればよいですか?再度、感謝します! – Eric

+0

Np、 'application.js'やコントロール固有のjsファイルに追加できます。 – RSB

+0

私の見方を変更し、JSコードを 'application.js'に追加しましたが、うまくいきませんでした。 – Eric

関連する問題