javascript – Rails 4 – Toaster通知而不是Flash通知

我正在使用这个库,(https://github.com/CodeSeven/toastr),我正在尝试将我的Flash通知推送到Toastr为我提供的javascript函数.如何为每个错误通知调用函数

这是用于制作烤面包机通知方法之一:

toastr.warning('This is a warning!')

我尝试在ApplicationController中创建一个方法,看看我是否可以在CanCan的错误调用方法.我有各种版本的方法,没有一个工作.

def toast(type,text)
    #if Logic here for varIoUs errors/notifications
    respond_to do |format|
        format.js { render action: "toastr.warning(#{text})",layout: false}
    end
end

def toast(type,text)
    #if Logic here for varIoUs errors/notifications
    "toastr.warning(#{text})"
end

然后我尝试在CanCan块中使用此方法

rescue_from CanCan::AccessDenied do |exception|
    toast :error,exception.message
    redirect_to root_url
end

我认为这是可能的,但我只是不确定如何实现它.没有多少人尝试这样做,可能有一个原因.我对如何做我想做的任何建议持开放态度.

这是一个实现Toast通知的测试应用程序:
http://codeseven.github.io/toastr/demo.html

最佳答案
我建议的是为这种东西制作一个新的flash类型,然后在你的布局中将其渲染为JS.

ApplicationController

def toast(type,text)
  flash[:toastr] = { type => text }
end


app/views/layouts/IoUs layouts)
# the 

因此,通过这种方式,您可以从flash对象中获得您习惯的所有标准行为,并且您可以直接通过erb轻松理解在您的视图中编写的javascript.您可能需要向ApplicationController#toast方法添加一个选项哈希,这样您有时可以执行flash.Now [:toastr].等等…但这应该让你开始.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...