ruby-on-rails
  • ruby-on-rails-3
  • ruby-on-rails-3.2
  • ruby-on-rails-4
  • rails-flash
  • 2013-03-20 101 views 43 likes 
    43

    我在Rails控制器以下代碼:如何在重定向時顯示Rails Flash通知?

    flash.now[:notice] = 'Successfully checked in' 
    redirect_to check_in_path 
    

    然後在/ CHECK_IN視圖:

    <p id="notice"><%= notice %></p> 
    

    然而,該通知顯示不出來。完美的作品,如果我沒有在控制器重定向:

    flash.now[:notice] = 'Successfully checked in' 
    render action: 'check_in' 
    

    我需要一個重定向雖然...不只是一個採取行動的渲染。重定向後可以收到Flash通知嗎?

    回答

    89

    刪除「.now」。所以只需寫:

    flash[:notice] = 'Successfully checked in' 
    redirect_to check_in_path 
    

    .now是專門用於當你只是渲染和不重定向。重定向時,現在不會被使用。

    +0

    完美!謝謝。它讓我等6分鐘才能接受答案,因爲某些原因... – 2013-03-20 20:42:36

    20
    redirect_to new_user_session_path, alert: "Invalid email or password" 
    

    代替:alert可以使用:notice

    顯示

    9

    或者你可以在一行中做到這一點。

    redirect_to check_in_path, flash: {notice: "Successfully checked in"} 
    
    +0

    @ JayEl-Kaake您使用的是什麼ruby版本? – etlds 2016-03-03 14:26:55

    +0

    這是一段時間以前,所以我不確定...我會編輯我的評論,因爲它看起來應該工作。 – 2016-03-07 19:37:44

    +1

    路徑,閃光燈:{通知:......看起來像Rails 3,而路徑,警報:...是Rails 4+ – 2016-12-12 15:57:13

    3

    我有同樣的問題,你的問題解決了我的,因爲我已經忘記了在/ CHECK_IN觀點包括:

    <p id="notice"><%= notice %></p> 
    

    在控制器中,只有一行:

    redirect_to check_in_path, :notice => "Successfully checked in"    
    
    +0

    你的是一個不同的問題。我有'<%= notice %>'標籤,什麼都沒有出現 – 2015-02-09 05:33:40

    3

    這工作太

    redirect_to check_in_path, notice: 'Successfully checked in'

    1

    如果您使用的是Bootstrap,則會在您的重定向目標頁面上顯示格式良好的Flash消息。

    在你的控制器:

    if my_success_condition 
        flash[:success] = 'It worked!' 
    else 
        flash[:warning] = 'Something went wrong.' 
    end 
    redirect_to myroute_path 
    

    在你看來:

    <% flash.each do |key, value| %> 
        <div class="alert alert-<%= key %>"><%= value %></div> 
    <% end %> 
    

    這將產生HTML這樣的:

    <div class="alert alert-success">It worked!</div> 
    

    有關可引導警報樣式,請參見:http://getbootstrap.com/docs/4.0/components/alerts/

    參考:https://agilewarrior.wordpress.com/2014/04/26/how-to-add-a-flash-message-to-your-rails-page/

    相關問題