2015-06-12 103 views
3

使用rails建立我的第一個應用程序,也即時嘗試添加一些Ajax功能。我有一個註冊表單在我的根網址爲了創建用戶,但我無法找到一種方式來顯示我的成功消息後創建用戶。我可以正確地看到json響應,但不能看到閃光消息。我的代碼中是否有缺少的東西?使用ajax提交表單後顯示Flash消息

# Controller 

def create 
    @user = User.new(user_params(CREATE_PARAMS)) 

    respond_to do |format| 
    if @user.save 
     @user.send_activation_email 
     format.html { flash[:info] = "Success!!" 
        redirect_to root_url 
     } 
     format.json { render json: @user, status: :created, location: @user } 
    else 
     format.html { render "new" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
    end 
end 

# application.html.erb 

<body> 
    <div class="container"> 
    <div class="message-notification"> 
     <%= render 'shared/alert_messages' %> 
    </div> 
    <%= yield %> 
    </div> 
</body> 

# shared/_alert_messages.html.erb 

<% flash.each do |message_type, message| %> 
    <%= content_tag(:div, message, class: "alert-message alert-message-# {message_type}") %> 
<% end %> 

# Handling errors users.coffee 
$(document).on "ajax:error", "form#new_user", (event, data, status, xhr) -> 
    $("form#new_user").render_form_errors "user", data.responseJSON 

$.fn.render_form_errors = (model_name, errors) -> 
    form = this 
    this.clear_form_errors() 

    $.each errors, (field, messages) -> 
    input = $('input[name="' + model_name + '[' + field + ']"]'); 
    input.closest(".form-group").addClass("has-error") 
    input.parents(".form-group").append('<span class="help-block">' + 
     $.map(messages, (m) -> m.charAt(0).toUpperCase() + 
     m.slice(1)).join("<br />") + "</span>") 

$.fn.clear_form_errors =() -> 
    this.find(".form-group").removeClass("has-error") 
    this.find("span.help-block").remove() 
+0

重複的http://計算器。 COM /問題/ 23967390 /鋼軌閃光通知書,通過Ajax的。淨網絡是你不能有一個「真正的」Flash消息,因爲你沒有提出服務器請求,但你可以模擬一個。 –

+0

這裏的問題是,即時通訊不被重定向,這就是爲什麼我不能看到我的Flash消息,我不知道爲什麼 – adavia

+0

我恭敬地提出,問題是你不能呈現帶有Ajax請求的Flash消息。 –

回答

0

我想你必須把閃光燈[:信息]在JSON塊像

format.json { flash[:info] = "Success!!" } 

,而不是把它在format.html

相關問題