我有一个带有下拉菜单的Rails表单,如下所示:
<%= form_tag generate_report_path(:header => true) do |f| % >
<div class="container-fluid">
<div style="padding-right:10px">
<%= select_tag(:report_id, options_for_select(
[["Select Report Type", 0],
["Report1", 1],
["Report2", 2],
["Report3", 3]]), id: "report_selection") %>
<%= hidden_field_tag :format, :pdf %>
<%= button_tag "Generate Report", class: 'btn btn-sm btn-primary'%>
当用户在下拉列表中选择一个条目并单击“生成报告”按钮时,将向用户显示flash message
。
现在,当用户从下拉菜单中选择其他条目时,我希望Flash消息消失。
我该如何实现?
请帮助!
(
我想到的解决方案的第一步是-如果下拉选择可以某种方式调用redirect_to
,那么我们可以将空的Flash消息集合传递给此redirect_to
由于Flash集合中没有Flash消息,因此这应该有助于我们删除Flash消息。在此前提下(我不确定这是否可行),我一直在考虑以下几点:
我一直无法在不致电redirect_to
的情况下成功显示Flash消息[即使我发现一些声称可以实现的文章]
更改下拉选项,我相信会调用form_tag
中提到的网址-在这种情况下为generate_report_path
-正确吗?
generate_report_path
似乎可以执行render
,但是似乎不能执行redirect
-这是正确的吗?redirect
后,我的理解是将调用application.html.erb
,该代码可以具有如下所示的代码,呈现所有的Flash通知和警报-这是正确的吗? # app/views/layouts/application.html.erb
<% flash.each do |key, value| %>
<div class="lead text-center <%= flash_class(key) %>">
<%= value %>
</div>
<% end %>
<%= yield %>
application.html.erb
发生时[由于调用render
的下拉选择的更改而会调用generate_report_path
吗?generate_report_path
应该可以解决此问题,我想[如果Flash消息集合为空白,则application.html.erb
将尝试呈现所有Flash消息收集条目,并且由于没有任何消息条目,因此将删除屏幕上已经显示的即显消息-这应该可以解决我的问题]?我试过了,但似乎不起作用-因此我想上述问题的答案是否定的?generate_report_path
将没有帮助-正确吗?)