0

現在、スライダーで作業しています。各スライドは、ステートマシンを使用して特定の状態になっています。ここで、送信されたデータを使用してPOSTリクエストを行っているページから、検証に合格した場合、「状態の名前」をビューページに戻したいので、スライドを移動できますか?

これはこれを行うためのより良い方法ですか?状態としてスライドを選択した理由は、クエリを実行して、特定のスライドに対して作成したクライアントの数を把握できるようにするためです。

だから現在、私は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

だから私の質問は、どうすればいくつかの値を返すことができますか?

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 に答える