2013-04-26 44 views
0

我移動從滑軌站點2至導軌3和需要更換以下已過時的方法,用jQuery:更新到導軌3與jquery AJAX

periodically_call_remote 
button_to_remote 

在視圖中,有按下時按鈕執行每12秒一個回調:

#index.html.erb (Rails 2.2.2) 

<%= periodically_call_remote(:url => { :action => 'check' }, :frequency => '12', :update => 'log') %> 

[...] 

<div id="generate_test_btn"><%= button_to_remote "Generate Test Order", 
         :url => { :action => "check", :should_generate => "YES" }, 
         :update => "log" %> 
</div> 

[...] 


#controller 
def check 

    [...Generate content...] 

    render :partial => "log" and return 

end 

我的部分實施方式
不知道如何膠水button_to代碼JQuery的AJAX的東西

### index.html.erb (Rails 3.1) 
    <script> 


$(document).ready(function(){ 

    $("#generate_test_button").click(function() { 

     setInterval(updateTest,12000); 
     }); 

    }); 

    function updateTest(){ 
    $("#log").load("???"); 
    } 

</script> 


    <%= button_to "Generate Test Order", 
        { :controller => :test, :action=> :check, :should_generate => "YES" }, 
        { :remote => true } 
       %> 

回答

1
在軌道3

你有不顯眼的JavaScript

所以基本上,你:remote => true創建的任何鏈接將調用controller#action但結尾的js.erb

所以在你的情況下,該按鈕將調用控制器中的check動作

如果您創建了ac heck.js.erb,並將其放置在views/test文件夾,裏面有

alert("UJS!"); 

應該彈出,一旦你按下該按鈕

也注意到,你應該有軌-UJS寶石並要求其在application.js清單

+0

謝謝。這有幫助。那麼,測試/檢查的遠程數據如何:render:partial =>「log」和return與這個新的js文件(check.js.erb) – Slinky 2013-04-26 15:53:50

+0

有關,你可以像處理'.js.erb'一樣處理是'html.erb'。這基本上是一個觀點,但在JS。你可以通過erb'<%= %>'訪問你在控制器中使用的變量,erb先走JS。所以你可以做'$(「#check - <%= @ check.id%>」)等等 – 2013-04-26 15:56:19