2016-07-26 50 views
1

在我的Rails應用程序,我想阻止用戶刪除一個帖子給出一些條件。發生這種情況時,我只想告訴他們該帖子無法刪除。代碼如下所示:Rails,js響應,只有一個通知

def destroy 
    respond_to do |format| 
    if some_conditions 
     flash[:notice] = "Could not be deleted" 
     ... 
     format.js {What to put here} 
    else 
     ... 
    end 
    end 
end 

我應該把在js響應括號什麼讓頁面不重新加載,但顯示的通知?謝謝!

回答

1

首先,將format.js保留原樣,我們將從js文件開始工作。

def destroy 
    respond_to do |format| 
    if some_conditions 
     flash[:notice] = "Could not be deleted" 
     format.js 
    else 
    end 
    end 
end 

現在創建一個名爲destroy.js.erb在app /視圖/控制器

在該文件中

destroy.js.erb

alert("Could not be deleted")

,或者如果你想要的文件顯示你的通知,

在你的視圖文件中取一個div,

<div class="something"></div>

在js.erb

$('.something').text(<%= flash[:notice] %>)

+0

我得到一個錯誤信息 「缺少模板帖/銷燬」。哦,我忘了destroy.js.erb ... –

+0

你有沒有添加js.erb – Sravan

2

你可以把閃存內,像這樣format.js { flash[:notice] = "Could not be deleted" },它會編譯相同。要打印通知,請按照Sravan指出的那樣創建一個destroy.js.erb。

創建一個div with a class="errors"

追加閃光燈[:聲明]由:

$('.errors').append("<%= flash[:notice] %>") 
+0

我需要destroy.js.erb嗎? –

+0

是的,它是強制性的。 – mrvncaragay