2012-09-30 70 views
1

我有一个很长的操作,以一个巨大的数组结束。该数组作为Ruby对象到js.erb文件,使部分使用它通过:从Ruby部分设置javascript变量

$('#xxx').html("<%= escape_javascript(render('part', testVar: @fromServer)) %>"); 

这一切顺利的话,但我希望能够无需在结果表中的列进行排序重新进行整个操作。它应该很容易,但是我无法获得局部持久化中的结果变量。我的目标是能够在部分文件中使用脚本标记:

<script type="text/javascript"> 
    $("#column").click(function(){ 
     $.ajax({ 
       type : 'POST', 
       url : '/sort_column', 
       data : {data: jsVar}, 
       dataType : 'script' 
     }); 
    }); 
</script> 

我该如何去做这件事?

回答

1

只需将你需要的红宝石包装在<%=%>中。像这样:

data : {data: "<%= testVar %>"}, 

由于文档将发送给ruby解释器,它将包含您的testVar值。请使用蛇案例符号而不是骆驼案件。这是红宝石常见的协议。

+0

无论出于何种原因,该脚本并未呈现。 Ruby中有关于渲染脚本部分的规则吗? –

+0

如果你没有得到错误,那么你的控制器逻辑可能不像预期的那样工作,也不会用js来响应,你能否将控制器方法添加到问题中? –