如何让ajax回答苗条?

sup*_*lya 3 ajax slim-lang

在destroy.js.erb中,它有效

$("<%= escape_javascript(render @comment) %>").appendTo("#commentlist");

怎么做苗条?我试过了

$("= escape_javascript(render @comment)").appendTo("#commentlist");

并重命名为destroy.js.slim,但它不起作用

Ale*_*vas 6

默认情况下,Slim会尝试将您的代码转换为HTML标记,因此您当前的代码会产生错误.您可以通过查看来查看http://<website_adress>/something/destroy.js

要解决这个问题,你必须使用管道符号,这里摘录官方文档:

管道告诉Slim只是复制该行.它基本上逃脱了任何处理.将复制缩进大于管道的每个后续行.

http://rdoc.info/gems/slim/frames

此外,对于Slim,ruby嵌入工作有点不同#{ruby code},如果将其嵌入到字符串中,则必须使用等号而不是等号.

总结一下,这就是它应该如何工作:

|
   $("#{escape_javascript(render @comment)}").appendTo("#commentlist");
Run Code Online (Sandbox Code Playgroud)

这样,您可以添加更多行,而无需每次都使用管道预先添加代码.需要注意的是,还有escape_javascript简单调用的快捷方式j,因此您可以使用此代码:

|
   $("#{j(render @comment)}").appendTo("#commentlist");
Run Code Online (Sandbox Code Playgroud)