[英]RoR3.1: how to do the AJAX/Update from the controller
目前,我通過對/ moves進行GET來“輪詢” /每1000毫秒檢查一次:
jQuery(document).ready(function() {
setInterval(function() {
$.get("/moves", function(result){
$('#board').clearBoard();
var myobj = {fen : ""};
myobj.fen = result;
$('#board').chess(myobj); });
}, 1000);
$.ajaxSetup({ cache: false });
})
我想在控制器中獲得POST后通過更新來替換它:
class MovesController < ApplicationController
def create
m = Move.new
last_game = Game.last
if !last_game.nil?
m.game_id = last_game.id
end
m.move_data = params[:move_data]
if m.save
render :text => "#{m.move_data}"
**Update JavaScript here**
else
render :text => "FAIL"
end
end
def index
last_move = Move.last
if last_move.nil?
render :text => "FAIL"
else
render :text => "#{last_move.move_data}"
end
end
end
我不確定如何從控制器執行AJAX /更新。
謝謝!
響應來自控制器的ajax的正確方法是使用response_to塊。 例如:
class MyController < Application Controller
def my_action
respond_to do |format|
format.js # For ajax, which is what you want.
format.html # For regular html responses.
end
end
end
然后,您需要一個相應的app / views / my_controller / my_action.js.erb
response_to塊將檢測用戶瀏覽器請求的是html文件還是js文件(例如通過ajax請求)。
如果您想直接從js發布到服務器,我建議$ .ajax。
'type'選項允許您指定'GET'或'POST'。 該方法記錄在這里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.