如何让ajax回答苗条?

时间:2013-09-12 18:53:31

标签: ajax slim-lang

在destroy.js.erb中它可以正常工作

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

如何做到苗条? 我试过了

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

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

2 个答案:

答案 0 :(得分: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");

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

|
   $("#{j(render @comment)}").appendTo("#commentlist");

答案 1 :(得分:0)

在视图中

- 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)