我有一個小問題,我似乎無法弄清楚。
常規閃光燈按預期作業。
flash[:test] = 'Blarrgh'
redirect_to etcs_url
將顯示“Blarrgh”,因為我的 application.html.erb 中有此代碼
<% if flash[:test] %>
<%= flash[:test] %>
<% elsif flash.now[:test] %>
<%= flash.now[:test] %>
<% end %>
我很確定顯示 flash.now[:test] 訊息的方法只是 flash[:test],但我在底部添加了 elsif 以防萬一,因為事情不起作用。
出于某種原因,當我這樣做時
flash.now[:test] = 'Blarrgh'
render :edit
什么都沒有出現。但是,當我在視圖中添加“失敗”陳述句然后檢查值時,flash[:test]/flash.now[:test] 將具有正確的值。例如,['Etc can't be blank']
我嘗試檢查常見錯誤:沒有 CSRF 令牌、隱藏重定向、flash.now b4 渲染、使用沒有 local:true 的 form_with,但是查看我的日志,沒有這樣的問題。我包含了 CSRF 令牌,我的日志路徑是
In logs:
patch /etc/1
(Commit fails, rolls back)
renders application.html.erb which yields etcs/edit.html.erb which renders etcs/_form.html.erb, then renders rest of etcs/edit.html.erb
我正在把我的 flash.now b4 渲染。我也沒有使用像 form_with 這樣的 Rails 輔助函式。
uj5u.com熱心網友回復:
沒關系,我想通了。顯然,Rails 有時絕對是瘋狂的。
如果你做一個
Flash.now[:errors] = 'This is an error'
render :edit
這行不通。你所要做的
Flash.now[:errors] = 'This is an error'
render :edit, status: :whatever_status
由于某種原因,這不會在瀏覽器控制臺中顯示為錯誤。它只是根本不顯示您的 flash.now。據說,Rails 7 的 turbo 要求非常高,這是一個問題。我希望這可以使某人免于處理大量的痛苦和痛苦。
發現 Alex 在 Flash 中的回復中的答案未顯示在 Rails 中的同一視圖中
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468349.html
