Jquery RoR3.1:如何从控制器执行AJAX/更新
当前im“轮询”/每1000毫秒进行一次访问/移动检查:Jquery RoR3.1:如何从控制器执行AJAX/更新,jquery,ruby-on-rails,ajax,ruby-on-rails-3,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3,当前im“轮询”/每1000毫秒进行一次访问/移动检查: jQuery(document).ready(function() { setInterval(function() { $.get("/moves", function(result){ $('#board').clearBoard(); var myobj = {fen : ""}; myobj.fen = result; $('#board').chess(myobj); }); }, 1000); $.ajaxSetup(
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 });
})
我想在收到控制器中的帖子后更新:
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
class MovesController“#{m.move_data}”
**在此处更新JavaScript**
其他的
呈现:text=>“失败”
结束
结束
def索引
最后移动
如果最后一步是零?
呈现:text=>“失败”
其他的
render:text=>“#{last_move.move_data}”
结束
结束
结束
我不确定如何从控制器执行AJAX/更新
谢谢 从控制器响应ajax的正确方法是使用respond\u来阻止。例:
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
class MyController
然后你需要一个对应的app/views/my_controller/my_action.js.erb
respond_to块将检测用户浏览器是请求html文件还是js文件(如通过ajax请求)
如果您想直接从js向服务器发送帖子,我建议使用$.ajax
“type”选项允许您指定“GET”或“POST”。这种方法是有据可查的为什么要使用
jQuery(document)
,然后再使用$。在同一个代码块中使用任何
?我是这样工作的,但我完全愿意学习如何以正确的方式编写它。它基于以下代码:只需使用$(document).ready(function(){…})
,或者更好的是,$(函数(){…})代码>。它们是一样的。