2013-04-24 153 views
0

我是個局部模板嘗試使用JavaScript/Jquery.ajax請求在Ruby on Rails的部分模板更新頁面更新頁面。該部分被稱爲_promotions.html.erb我是一個與JavaScript和JQuery的noob,並不理解語法。從頁面進行更新:Jquery.ajax請求與紅寶石上軌

<div id="promotions"></div> 
<script type="text/javascript"> 
    jQuery.ajax({ 
    url: "/promotions", // it routes to the following def 
    type: "GET", 
    dataType: "html" 
    success: $(function(data){$('#promotions').write(data)}) 
    }); 
</script> 

從軌控制器處理響應:

def promotions 
    @items = Item.search("", 8) #the partial needs this variable during preprocessing 
    respond_to do |format| 
    format.html { render :partial => "promotions", :layout => false, } 
    end 
end 

我想渲染_promotions.html.erb到頁面中。最終,我希望能夠定期重新渲染那個div的內容而不刷新整個頁面(因此jquery調用而不是通過rails預處理)。我哪裏錯了?

回答

0
jQuery.ajax({ 
    url: "/promotions", 
    type: "GET", 
    dataType: "html", // You missed a comma. 
    success: function(data){$('#promotions').html(data)} 
}); 

沒有jQuery .write()方法。
另外,不要在$(...)包裝function(data){$('#promotions').html(data)}像你一樣。

$('#promotions')返回ID 優惠的DOM元素,但$(function() {})僅用於bind a function which runs when the document is ready