2016-03-01 61 views
0

在我的客戶索引視圖中,如果我單擊刪除客戶按鈕,則會在我的客戶控制器刪除方法中執行以下操作。Rails控制器上的Modal彈出窗口操作

Customers_controller.rb

類CustomersController < ApplicationController的 。 。

def destroy 
    if Customerarticle.where(author_id: params[:id]).count > 0 
     #####I need the logic here to display a modal window on my index page of customers here##### 
    else 
     Customer.find(params[:id]).destroy 
     flash[:success] = "Customer deleted" 
     # debugger 
     redirect_to customers_path 
    end 

所以根據我的情況,如果這是真的意味着用戶無法刪除,並顯示在一個模式彈出窗口的客戶索引頁本身上的消息,該如何實現呢?

回答

0

我建議你發出一個ajax請求,當按鈕被點擊並使其重定向到你的銷燬行動。然後,在控制器內執行你的邏輯,並簡單地返回一個真/假(或其他任何你需要的)並在你的JS回調中使用它。

例如:

在你view.js

$(document).ready(function(){ 
    $("#delete_button").click(function(e){ 
     e.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "/URL/TO/CONTROLLER", 
     data: { id: someID}, 
     success: function(result){ 
     if(result == true) { 
      // Do something 
     } else { 
      window.location.replace(result); 
     } 
    }}); 
    }); 
}); 

在你的控制器:

def destroy 
    if Customerarticle.where(author_id: params[:id]).count > 0 
     return true 
    else 
     Customer.find(params[:id]).destroy 
     flash[:success] = "Customer deleted" 
     return customers_path 
    end 
end 

這應該只是罰款。請記住,它肯定需要一些重新調整和調整:)

相關問題