2012-12-29 29 views
-1

我有AJAX JS函數,其中的以下網址:如何在ruby代碼中添加JS變量?

var company_count = COMPANIES_PER_PAGE; 

.... 

url: '<%=j companies_path(start: ' + company_count + ', f: params[:f]) %>', 
.... 
company_count += COMPANIES_PER_PAGE; 

,但是這給了我劇本:

url: '/companies?f=k&amp;start=company_count', 

我想爲前:

url: '/companies?f=k&start=30', 

全腳本

<script> 
    var COMPANIES_PER_PAGE = <%= @companies_per_page %>; 
    var company_count = COMPANIES_PER_PAGE; 

    $(document).ready(function(){ 
     checkScroll(); 
    }); 

    function checkScroll() { 
     if (nearBottomOfPage()) { 
     $('#loading_more_'+(company_count-COMPANIES_PER_PAGE)).fadeTo(200, 1); 
     $.ajax({ 
      type: "GET", 
      url: '<%=j companies_path(start: company_count, f: params[:f]) %>', 
      dataType: "script" 
     }); 
     company_count += COMPANIES_PER_PAGE; 
     } else { 
     setTimeout(checkScroll, 250); 
     } 
    } 
    </script> 
+0

Js變量應該作爲DOM中的數據屬性添加。然後你的js代碼可以從這裏拿走它們。在ajax中,發送JSON回服務器 – apneadiving

回答

1

爲什麼不使用$ .ajax()的數據屬性?它允許你附加所有的JS變量,加上你的Ruby生成的變量......

$.ajax({ 
     type: "GET", 
     url: '<%=j companies_path %>', 
     data: { start: "<%= params[:f] %>", start: company_count }, 
     dataType: "script" 
}); 
+0

我得到一個錯誤''f:「<%= params [:f]%>」''我用''url:'<%= j companies_path(f:params [ :f])%>''' – tomekfranek