Rails: redirect_to with :error, but flash[:error]

2019-01-12 23:32发布

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 => "error" it doesn't show up.

what could I be missing?

3条回答
做个烂人
2楼-- · 2019-01-13 00:06

If you are having problem to keep the flash after redirecting to another path, then use this.

flash.keep

in your method, before redirecting.

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-01-13 00:07

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!" }
查看更多
再贱就再见
4楼-- · 2019-01-13 00:33

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.

查看更多
登录 后发表回答