1

当尝试重定向 POST 请求时,我发现 rails 的 flash 散列被清除了。

当初始请求是 GET 时,重定向工作正常。

在 config/routes.rb

post 'test/hello' 
#get 'test/hello' #uncomment this line and comment out the post and the flash is preserved
get 'test/goodbye'

在 app/controllers/test_controller.rb

def hello
    respond_to do |format|
        format.html do
            redirect_to movies_goodbye_url, :notice => "I disappear on post requests"
        end
    end
end

def goodbye
end

在 app/views/test/goodbye.html.haml

%h1 Test#goodbye
%p#alert= alert
%p#notice= notice

我希望此操作能够处理来自表单提交的帖子,这些帖子在错误情况下重定向到我现有的视图之一。我对 Rails 很陌生,所以如果有更好的方法来处理这个用例,请告诉我。

4

1 回答 1

2

尝试flash.keep在其中添加一个:

flash.keep(:notice)
redirect_to movies_goodbye_url, :notice => "I disappear on post requests"

另请参阅:重定向中的 Flash 消息不起作用

于 2012-09-15T23:01:55.677 回答