为什么我的 Flash.now 在渲染后没有输出?
Why is my Flash.now not outputting after a render?
我有一个我似乎无法弄清楚的小问题。
普通闪光灯正常工作。
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
什么都没有显示。但是当我将 'fail' 语句放入我的视图然后检查值时,flash[:test]/flash.now[:test] 将具有正确的值。例如,['等不能为空']
我尝试检查常见错误:没有 CSRF 令牌、隐藏的重定向、flash.now b4 渲染、使用 form_with 而没有 local:true,但是查看我的日志,没有这样的问题.我包含了 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 渲染。我也没有使用 Rails 辅助函数,例如 form_with.
没关系,我想通了。 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 的涡轮增压器的问题。我希望这可以使某人免于处理大量的痛苦和苦难。
从 Alex 在 Flash is not displayed in the same view in Rails
的回复中找到了答案
我有一个我似乎无法弄清楚的小问题。
普通闪光灯正常工作。
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
什么都没有显示。但是当我将 'fail' 语句放入我的视图然后检查值时,flash[:test]/flash.now[:test] 将具有正确的值。例如,['等不能为空']
我尝试检查常见错误:没有 CSRF 令牌、隐藏的重定向、flash.now b4 渲染、使用 form_with 而没有 local:true,但是查看我的日志,没有这样的问题.我包含了 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 渲染。我也没有使用 Rails 辅助函数,例如 form_with.
没关系,我想通了。 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 的涡轮增压器的问题。我希望这可以使某人免于处理大量的痛苦和苦难。
从 Alex 在 Flash is not displayed in the same view in Rails
的回复中找到了答案