在 destroy.js.erb 它工作
$("<%= escape_javascript(render @comment) %>").appendTo("#commentlist");
怎么做才能瘦?我试过了
$("= escape_javascript(render @comment)").appendTo("#commentlist");
并重命名为destroy.js.slim,但它不起作用
默认情况下,Slim 会尝试将您的代码转换为 HTML 标记,因此您当前的代码会产生错误。您可以通过查看来检查它http://<website_adress>/something/destroy.js
要解决这个问题,你必须使用管道符号,这里是官方文档的摘录:
管道告诉 Slim 只复制该行。它基本上逃脱了任何处理。缩进大于管道的每个后续行都将被复制。
此外,红宝石嵌入对 Slim 的工作有点不同#{ruby code}
,如果你将它嵌入到字符串中,你必须使用而不是等号。
总而言之,这就是它的工作方式:
|
$("#{escape_javascript(render @comment)}").appendTo("#commentlist");
这样,您可以添加更多行,而无需每次都在代码前面加上管道。需要注意的是,也有escape_javascript
调用 simple的快捷方式j
,因此您可以使用以下代码:
|
$("#{j(render @comment)}").appendTo("#commentlist");
在视野中
- url_ajax = 'http://gilcierweb.com.br'
- content_for :js do
javascript:
var ids = new Array();
$('input[type=checkbox]:checked').each(function () {
var id = $(this).val();
ids.push($(this).val());
$('.' + id).fadeOut("slow").hide(1600).remove();
});
$.ajax({
type: "POST",
url: "#{escape_javascript(url_ajax)}",
data: {id_img: ids},
success: function (data) {
$('.contestants_list').append(data);
}
});
在布局中
-if content_for?(:js)
== yield(:js)