Rails:redirect_to with:error,但flash [:error]为空

Dan*_*iel 112 ruby-on-rails-3

我在设置flash [:error]值时尝试重定向.(Rails 3.0.10)

在我看来,我有

<p id="error"><%= flash[:error] %></p>
<p id="notice"><%= flash[:notice] %></p>
Run Code Online (Sandbox Code Playgroud)

如果我这样做redirect_to show_path, :notice => "ok"它工作正常,但如果我做redirect_to show_path, :error => "error"它不会出现.

我能错过什么?

Tar*_*haf 227

正如Rails API中所述:notice和:alert默认应用为flash哈希值.如果需要设置:error值,可以这样做:

redirect_to show_path, :flash => { :error => "Insufficient rights!" }
Run Code Online (Sandbox Code Playgroud)

  • 为清楚起见:`redirect_to(show_path,{:flash => {:error =>"权利不足!"}})`.如果要使用url选项创建show_path,则需要此格式. (3认同)
  • 这对我也有用,我只是想知道闪存哈希中仅通知/警报背后的想法是什么 (2认同)
  • 在Rails 5中工作 (2认同)

Ram*_*aja 15

如果在重定向到另一条路径后遇到问题需要保留闪存,请使用此方法.

flash.keep
Run Code Online (Sandbox Code Playgroud)

在您的方法中,重定向之前.