2012-09-30 118 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來響應,你能否將控制器方法添加到問題中? –