0

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

这是更好的方法吗?我选择幻灯片作为状态的原因是我可以运行查询来确定我的客户对某张幻灯片做了多少。

所以目前我正在发出ajax发布请求..(部分忽略)

$.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

所以我的问题是如何返回一些价值?

4

1 回答 1

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')
})

对于文本:

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 数据。

于 2013-03-19T16:05:37.213 回答