Rails 4在js视图中呈现Gritter消息

Rails 4 render Gritter messages in js view

本文关键字:Gritter 消息 视图 js Rails      更新时间:2023-09-26

使用Rails 4.2.4、ruby 2.2.2、gritter gem 1.2.0。我的控制器响应js:

#posts_controller.rb
if @post.update post_params
  gflash :success => "Link updated"
end

这是我的js视图:

#update.js.erb
<%= gflash :js => true %>

问题是没有呈现任何问题,Rails服务器运行良好,控制台中也没有显示任何问题。我已经检查了生产的js,我看到了这个:

jQuery(function(){jQuery.gritter.add({image:'/assets/success-0b8a2dedd729f28e513472812f5483ae2817ae482c0b744c3ce56c9dd2b2bc1d.png',title:'
Success',text:'Link updated'});});

浏览器似乎没有呈现jQuery函数。(我的应用程序中安装了jquery allready)想法?

解决方案:

缩写:<%= (gflash :js => true).html_safe %>

Long:使用Fiddler Web调试器检查服务器响应我注意到响应如下:

jQuery(function(){jQuery.gritter.add({image:&#39;/assets/success-0b8a2dedd729f28e513472812f5483ae2817ae482c0b744c3ce56c9dd2b2bc1d.png&#39;,title:&#39;Success&#39;,text:&#39;Link updated&#39;});});

如果我在chrome控制台中执行上面的代码,我会出现错误:

VM8474:2 Uncaught SyntaxError: Unexpected token 

因此,使用html_safe方法对我有效:<%= (gflash :js => true).html_safe %>