javascript - Rails 闪现消息不会消失

标签 javascript ruby-on-rails

我正在尝试在 Flash 消息上应用 javascript,但它并没有消失。我尝试在同一页面以及 application.js 上应用代码,但 Flash 消息并没有消失。
[文章_ Controller .rb]

class ArticlesController < ApplicationController

    before_action :set_params,only: [:edit,:update,:show,:destroy]

    def index
        @articles=Article.all
    end

    def new
        @article=Article.new
    end

    def edit
    end

    def create

        @article=Article.new(article_params)
        @article.user=User.first
        if @article.save
            flash[:success]="Article was successfuly created"

        redirect_to article_path(@article)
        else
            render 'new'
        end
    end

    def show
    end

    def update
        if @article.update(article_params)
          flash[:success]="Article was successfuly updated"
           redirect_to article_path(@article)
        else
            render 'new'
        end
    end

    def destroy
        @article.destroy
        flash[:danger]="Article was successfuly deleted"
        redirect_to articles_path
    end

    private

        def set_params
            @article=Article.find(params[:id])
        end

        def article_params
            params.require(:article).permit(:title,:description)
        end

end


[_message.html.erb]

<script type="text/javascript">
$(document).ready(function(){
  setTimeout(function(){
    $('#flash').remove();
  }, 5000);
 })
</script>
<div class="row">
    <div class="col-xs-10 col-xs-offset-1">

<% flash.each do |name,msg| %>
    <div class='alert alert-<%="#{name}" %>'>
        <a href="#" class="close" data-dismiss="alert">&#215;</a>

    <%= content_tag :div,msg, :id=>"flash_#{name}" if msg.is_a?(String) %>
    </div>
<% end %>

    </div>
</div>


[application.html.erb]

<!DOCTYPE html>
<html>
<head>
  <title>BlogApplication</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= render 'layouts/navigation' %>
<%= render 'layouts/messages' %>
<div class="container">
<%= yield %>
</div>
<%= render 'layouts/footer' %>



</body>
</html>

最佳答案

你可以使用 jQuery 或 JS 自动删除 flash 消息,我会给你一个示例代码,只需浏览它并在你的代码中进行必要的修改:)

所有人通用

$(".alert" ).fadeOut(3000);

警报成功:

 $(".alert-success" ).fadeOut(3000);

警报危险:

$(".alert-danger" ).fadeOut(3000);

关于javascript - Rails 闪现消息不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35520169/

相关文章:

sql - 条件 update_all 与 ActiveRecord 中的连接表?

javascript - 从 forEach 内部访问 vue 数据对象

javascript - 您可以在 HTML 标记的 onclick 上使用 "this"属性吗?

javascript - 使用html表格行作为复选框的方法?

javascript - 多维数组函数在 JS 中不起作用

javascript - 创建可在远程站点上使用的非常简单的小部件的最简单方法是什么?

javascript - × 类型错误 : Cannot set property 'props' of undefined

ruby-on-rails - SocketError(无法打开到 XXX.com 的 TCP 连接 :443 (getaddrinfo: Temporary failure in name resolution))

ruby-on-rails - 模态窗口中的recaptcha (fancybox)

ruby-on-rails - 如何正确设置 Active Paypal Adaptive Payment IPN Notifications?