gpt4 book ai didi

ruby-on-rails - 在 js.erb 文件中渲染部分内容

转载 作者:行者123 更新时间:2023-12-03 06:57:36 25 4
gpt4 key购买 nike

我正在尝试创建一个基于ajax的评论表单,它将在提交时更新我的​​评论列表。非常基本的东西。

我有部分comments/_single.html.haml其中有一个 <li>带有基本评论信息的标签,这是我的 comments/create.js.erb文件(实际上这是三个不同的测试文件合并为一个,以向您展示我的问题是什么):

$('#comments ul.comments').append("<%= render :partial => 'comments/single', :locals => { :c => @comment } %>");
$('#comments ul.comments').append("<%= render :partial => 'comments/foobar' %>");
$('#comments ul.comments').append("foobar");
alert('foobar');

comments/_foobar.html.haml的内容只是 foobar ,里面没有html。我的问题是前两行不起作用。我的开发服务器控制台中没有错误,对象检查器说注释代码已正确返回,但它们没有添加到我的注释列表中。第三行工作正常,第四行也工作正常。看起来使用render有一些问题.

最佳答案

在 Javascript 代码中渲染部分内容时,您应该使用 escape_javascript 方法,如下所示

$('#comments ul.comments').append("<%= escape_javascript render(:partial => 'comments/single', :locals => { :c => @comment }) %>");

此方法别名为 j,因此您也可以这样做

$('#comments ul.comments').append("<%= j render(:partial => 'comments/foobar') %>");

The method Escapes carriage returns and single and double quotes for JavaScript segments ActionView::Helpers::JavaScriptHelper Rails docs

关于ruby-on-rails - 在 js.erb 文件中渲染部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11127934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com