Rails: redirect_to with :error, but flash[:error] empty
I'm trying to do a redirect while setting the flash[:error] value. (Rails 3.0.10)
In my view I have
<p id="error"><%= flash[:error] %></p>
<p id="notice"><%= flash[:notice] %></p>
If I do a redirect_to show_path, :notice => "ok"
it works fine, but if I do redirect_to show_path, :error开发者_StackOverflow社区 => "error"
it doesn't show up.
what could I be missing?
As stated in the Rails API only :notice and :alert are by default applied as a flash hash value. If you need to set the :error value, you can do it like this:
redirect_to show_path, flash: { error: "Insufficient rights!" }
If you are having problem to keep the flash after redirecting to another path, then use this.
flash.keep
in your method, before redirecting.
To truly follow the PRG pattern, I wonder if this project works well
https://github.com/tommeier/rails-prg
I can't stand apps not following PRG as a user.....I have been 6 pages after a POST and hit the back button to get back to 10 pages ago get blocked by "do you want to repost this crap"....no, of course not. I just want to get back to a page I had seen before.
non-PRG apps are very very annoying to users.
controller.rb
flash[:sucess] = "Your sucess message"
redirect_to action: :index
layout.html
<% if flash[:sucess] %>
<div class="alert alert-solid-success alert-bold" role="alert">
<div class="alert-text"><%= sanitize(flash[:sucess]) %></div>
</div>
<% end %>
精彩评论