Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery RoR3.1:如何从控制器执行AJAX/更新_Jquery_Ruby On Rails_Ajax_Ruby On Rails 3 - Fatal编程技术网

Jquery RoR3.1:如何从控制器执行AJAX/更新

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(

当前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({ 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(){…})
,或者更好的是,
$(函数(){…})。它们是一样的。