Rails的flash消息在几秒钟后消失



我正在控制器中设置我的flash消息。但是在Vue.js渲染它的模板和flash消息消失之前,flash消息只会显示几秒钟。我的控制器代码看起来像这样:

class ResultsController < ApplicationController
def new
...
end
def create
...
tournament_match = TournamentMatch.find_by(id: tournament_match_id)
if tournament_match.score_cards.attach(params['score_cards'])
flash[:success] = 'Score card uploaded'
else
flash[:warning] = 'Score card upload failed'
end
redirect_to public_results_path
end
end

我想显示更长的闪光消息。那么我如何才能显示更长的闪光消息?我试图在beforeCreate生命周期钩子的Vue组件中睡眠5秒,但这也不起作用。在Rails中,我尝试了flash.keep,但这也不起作用。在渲染模板之前,我如何在Vue.js中睡眠5秒?

更新:

我的flash消息视图如下

<div class='flash'>
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>">
<%= value %>
</div>
<% end %>
</div>

所以我通过制作div position: fixed修复了这个问题。最后的css是这样的

.flash {
position: fixed;
z-index: 10;
}

Vue js占用了页面中的所有空间,这就是为什么flash消息是不可见的,所以将位置设置为fixed使div保持固定在页面顶部,我可以看到flash消息。

最新更新