我在一个控制器中有一个create
方法,在这个控制器的末尾我想要redirect_to
另一个控制器/视图。在第一个控制器完成并呈现下一个flash[:notice]
视图后,我如何能够显示redirect_to
?
这是第一个控制器中的代码:
if @list.save
redirect_to root_path, :notice => "Created!"
我也注意到它在这里也不起作用:
if @list.save
redirect_to root_path, :alert => "Created!"
这是路线档案:
root :to => 'sessions#new'
答案 0 :(得分:4)
要通过其他请求保留Flash消息,您可以使用flash.keep
- 来自the flash section on Rails Guides:
假设此操作对应于root_url,但您想要所有操作 请求将此处重定向到UsersController #index。如果一个动作 设置闪存并重定向到此处,通常会丢失值 当另一个重定向发生时,你可以使用'keep'来实现它 坚持要求另一个。
澄清:此解决方案仅适用于因双重重定向而丢失闪存的问题。
答案 1 :(得分:0)
你试过这个吗?
redirect_to(whatever_path, :notice=>"hello world")
此外,您可以使用:error
redirect_to(whatever_path, :error=>"hello error")
答案 2 :(得分:0)
您使用的是什么版本的Rails?您使用的语法是一个相对较新的功能。尝试做很多事情:
flash[:notice] = 'Created'
redirect_to root_path