2016-09-16 108 views
0

我試圖從我的模型中刪除一條tweet,只有在勾選旁邊的複選框。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

相關問題