如何使用信息ajax POST请求传回来

时间:2013-03-19 14:34:31

标签: ruby ajax ruby-on-rails-3 jquery

目前我正在使用滑块,每张幻灯片都是使用状态机的特定状态。现在从一个页面我正在发送带有数据的发布请求,如果它通过验证,我想将“状态名称”返回到我的视图页面,所以我可以移动幻灯片吗?

这是更好的方法吗?我选择幻灯片作为状态的原因,所以我可以运行查询以确定我的客户端对某些幻灯片的数量。

所以目前我正在制作ajax post请求..(忽略部分完成)

$.post("/xxx/tracks", { name: "xx", time: "xx", pa: "xx" }).done(function(data) {
   alert("Data Loaded:" + data);
});

所以现在在我的控制器中

def tracks
 binding.pry
 # some condition determining val accordingly
 respond_to do |format|
   format.json { head :ok } #return val somehow
 end
end

所以我的问题是如何归还某些价值?

1 个答案:

答案 0 :(得分:0)

如果您不想渲染任何内容,可以传递html,文本或仅传递响应标题。

例如,

Html,只需渲染您想要的视图:

def tracks
 binding.pry
 # some condition determining val accordingly
 render 'tracks' #tracks.html.erb
end

$.post("/xxx/tracks", { name: "xx", time: "xx", pa: "xx" }, function(data) {
  $("selector").append(data)
}).error(function(response, data){
  alert('error processing the request')
})

For Text:

def tracks
 binding.pry
 # some condition determining val accordingly
 if expression
   render text: 'success', status: :ok
 else
   render text: 'Error processing your request', status :bad_request
 end
end

$.post("/xxx/tracks", { name: "xx", time: "xx", pa: "xx" }, function(response, data) {
  alert(data.responseText)
}).error(function(response, data){
  alert(data.responseText)
})

仅渲染标题

def tracks
 binding.pry
 # some condition determining val accordingly
 if expression
   head :created
 else
   head :unprocessable_entity
 end
end

$.post("/xxx/tracks", { name: "xx", time: "xx", pa: "xx" }, function() {
  alert('seccess')
}).error(function(){
  alert('error')
})

你可以渲染太多的json数据。