Rails中關於報錯信息有專門的falsh接口,使用方式跟session很像。flash的翻譯是一閃而過,做用也是如此:flash中存儲的信息在下一個請求中用一下而後就自動清空。 html
實際操做: 瀏覽器
原來的代碼(注意以下是user局部變量而不是@user實例變量,這是由於該動做不須要對應的視圖,且重定向頁面時不須要顯示對應的 @user.errors因此使用局部變量便可) session
修改後的代碼: app
注意:redirect_to就是向瀏覽器發出下一個請求,那麼flash保存的信息就會在下一個請求:root或者:login中用到 佈局
要展現這些flash信息就要全局的佈局文件添加代碼,若是flash不爲空那就顯示相應的內容: 翻譯
填寫錯誤用戶名和密碼提交以後報錯以下: 3d
咱們添加一些樣式: htm
以下: blog
同時咱們刷新該頁面從新發送一個請求或者點擊另一個連接"關於",這是新的一個請求,因此flash裏的信息清空就不會在頁面顯示。 接口
Flash信息總是須要咱們刷新頁面來取消顯示很很差,因此下面來實現 flash 信息的自動消失。到 application.html.erb 中 </body> 的上面,添加以下紅框js代碼,讓flash信息在頁面停留4秒以後自動隱藏: