How to render edit view and post flash message in rails3

前端 未结 3 425
说谎
说谎 2021-02-05 02:10

In my account controller I\'d like to display (render, redirect_to ?) the edit view after changes get saved and display flash notice.

 def update
    @account =         


        
相关标签:
3条回答
  • 2021-02-05 02:32

    You can still use notices like in Rails 2:

    flash[:notice] = "message"
    

    Just add the following line to the top of your view to display it:

    <p id="notice"><%= flash[:notice] %></p>

    And you should use render method if you don't want to make your users to fill edit forms once again.

    0 讨论(0)
  • 2021-02-05 02:38

    By default you have to use a separate statement, e.g.

    format.html { 
      flash[:notice] = 'message'
      render :edit
    }
    

    This ticket has a patch to let you use render 'edit', :notice => 'message'. It didn't get into Rails but there is a gem, flash_render, that adds it.

    0 讨论(0)
  • 2021-02-05 02:45

    If you just use flash[:notice] that value will still be available in the next request. Meaning, you'll see the text on the next 2 pages. Instead use flash.now to only make the value available in the current request.

    format.html { 
      flash.now[:notice] = 'message'
      render :edit
    }
    

    For reference read Action Controller Overview 5.2.1

    0 讨论(0)
提交回复
热议问题