Rails '.js.erb' 不呈现部分

Posted

技术标签:

【中文标题】Rails \'.js.erb\' 不呈现部分【英文标题】:Rails '.js.erb' not rendering partialRails '.js.erb' 不呈现部分 【发布时间】:2014-10-08 10:49:14 【问题描述】:

所以,我正在使用 rails 3.2.13,我想要做的是渲染一个部分,然后使用 jquery 将其附加到一个 div:

$("#notifications").append("<%=raw escape_javascript(render('layouts/notification')) %>");

它现在做什么,是将它附加到正确的 div 但它不呈现部分或任何东西,它只是将 rails 代码呈现为字符串.. 我不知道我在做什么错但我敢打赌,我错过了一些愚蠢的事情。

任何帮助将不胜感激,谢谢

【问题讨论】:

【参考方案1】:

试试render_to_string 而不是render

【讨论】:

【参考方案2】:

如果它是常规部分(在同一视图下),那么:-

$("#notifications").append("<%= escape_javascript(render(:partial => 'notification')) %>");

否则

$("#notifications").append("<%= escape_javascript(render(:partial => 'layouts/notification')) %>");

【讨论】:

【参考方案3】:

试试这个:

 $("#notifications").append("<%= escape_javascript(render(:partial => 'layouts/notification')) %>");

【讨论】:

@RAJ...为什么在渲染部分时使用 raw 或 html_safe?

以上是关于Rails '.js.erb' 不呈现部分的主要内容,如果未能解决你的问题,请参考以下文章

Rails - 如何确保已在 js.erb 中呈现部分内容

Rails Ajax:.js.erb 呈现为文本,而不是 JS

在 js.erb 中渲染 Rails 部分而不重新加载整个页面

如何在 Rails ERB 文件的渲染部分 url 中访问 java 脚本变量?

Rails 6:Ajax 不接受 js.erb 中的渲染

Rails:从另一个控制器渲染 .js.erb?