2012-01-24 74 views
1

我有一個網站,優雅降低沒有JavaScript的用戶。對於沒有JavaScript的用戶,控制器將響應HTML提交表單。對於使用javascript的用戶,將會有一個AJAX表單提交。這是在控制器中創建方法:我可以防止在AJAX調用後出現Flash消息嗎?

if [email protected] 
     flash[:error] = array_to_list(@goal.errors.full_messages) 
    else 
     flash[:success] = "Your goal was successfully added." 
    end  

    respond_to do |format| 
     format.html { redirect_to :action => "show"} 
     format.js 
    end 

我不想把這些消息到閃存中,如果用戶已經啓動Javascript,因爲這時它會顯示在用戶已經處理了它。有沒有什麼辦法可以告訴Rails如果用html響應,只顯示

回答

4

您可以將flash位代碼放入您的format.html區塊中以實現此目的。

也許是這樣的:

@goal.save 

respond_to do |format| 
    format.html do 
    if @goal.errors 
     flash[:error] = array_to_list(@goal.errors.full_messages) 
    else 
     flash[:notice] = "Your goal was successfully added." 
    end 
    redirect_to :action => "show" 
    end 

    format.js 
end 

你有沒有想過,你可能希望有一些類型的錯誤信息與AJAX請求呢?如果你的AJAX請求由於某種原因而中斷,以至於不能保存,這可能是一個好主意。

相關問題