0

私は .html.erb コードにこれを持っています:

 $.ajax({
 url: "/timeMachineEdit",
 data: {editTimeMachine: newArray},
 type: 'POST',
 success: function (res) {
     if (res.result === 'ok') {
     alert('Data saved');
     } else {
     alert('Save error');
     }
},
error: function () {
     alert('Save error.');
     }
});

これは私のdatasets_controller.rbにあります

def timeMachineEdit 
    @dataset = current_user.dataset
    @dataset.machine_time = params[:editTimeMachine]
end

そして私のroutes.rbでは:

match "/timeMachineEdit", to: "datasets#timeMachineEdit"

しかし、提出されたときにショー:

POST http://localhost:3000/timeMachineEdit 500 (Internal Server Error) 

ここで問題はどこにありますか?ajax URLのルートですか、それとも何か他のものですか?

4

1 に答える 1

0

問題はルート定義にあります....

「/timeMachineEdit」を「datasets#timeMachineEdit」に一致させてみてください

フォーマットの性質上、まだ機能しないと思います.datasets_controllerで次のコードを試してください...

def timeMachineEdit 
  @dataset = current_user.dataset
  @dataset.machine_time = params[:editTimeMachine]
  respond_to do |format|
    format.js 
  end
end

また、AJAX リクエストの dataType を「script」に変更して、format.js と正しく一致させるようにします。それ以外の場合、フォーマットは/になり、respond_to ブロックで指定する最初のフォーマットが選択されます。

于 2013-10-02T17:48:58.377 に答える