2011-03-24 61 views
2

我正在使用Rails 3,並且我有一個ajax窗體(即:remote => true),它是我的控制器上的「插入」操作。rails 3 - 在ajax表單提交後停留在頁面上但顯示「flash」

我想讓用戶留在索引頁面上,但能夠顯示控制器中「插入」動作設置的閃存消息。

目前我的「插入」行動確實是這樣的:

def insert 
    begin 
    # perform insert of stuff 
    flash[:success] = "Successfully..." 
    rescue 
    flash[:error] = "failed ..." 
    end 
    render :nothing => true 
end 

這樣的形式(上index.html.erb)提交,並保持該網頁上的用戶,但沒有閃光燈的消息出現。我怎樣才能讓Flash消息出現? (猜測它與渲染有關:沒有東西,但沒有,我在服務器日誌中得到「缺少模板」錯誤)。

回答

4

你需要一個JavaScript應答:

def insert 
    begin 
    # perform insert of stuff 
    flash[:success] = "Successfully..." 
    rescue 
    flash[:error] = "failed ..." 
    end 
end 


# insert.js.erb 
$('#flash').html(<%= flash[:notice].to_json %>); 

使用閃光燈展現形式的錯誤消息肯定是反常的行爲。你最好用錯誤信息更新表單中的元素或完全替換表單。

+0

閃存並非真正意味着顯示與表單有關的錯誤消息,而是通知用戶在向數據庫插入期間是否發生故障。 – codecraig 2011-03-28 12:20:41

相關問題