2

Rails サーバーがあり、$.ajax 関数を使用して PUT を作成しようとしています。サーバーは POST 200 OK を返しますが、DB データは更新されていません。

$.ajax({type: 'POST',
        url: this.SERVER_IP+ "/user_coordinates/" + this.FRIEND_ID,
        dataType: 'json',
        async: false,
        data: {_method:'PUT',
               page: {"user_coordinate":
                        {"meetinglat":this.meetingPoint.getPosition().lat(),
                         "meetinglong":this.meetingPoint.getPosition().lng()}
                     }
              },
        success: function(msg){
                   console.log("Sucess! Object: ");
                   console.log(msg);
                 },
        error: function(msg){
                 console.log("Error! Object: ");
                 console.log(msg);
               }
        });

エラー関数が呼び出されています。ここで何が問題になる可能性がありますか?

御時間ありがとうございます ;)

4

2 に答える 2

3

私は問題を発見しました。コントローラーで logger.debug を使用すると、params[:user_coordinate] が期待されていることに気付き、ajax 呼び出しで次のようなものを渡していました。

data: {_method:'PUT',
               page: {"user_coordinate":
                        {"meetinglat":this.meetingPoint.getPosition().lat(),
                         "meetinglong":this.meetingPoint.getPosition().lng()}
                     }
              }

それ以外の:

data: {_method:'PUT',
               user_coordinate: {"meetinglat":this.meetingPoint.getPosition().lat(),
                         "meetinglong":this.meetingPoint.getPosition().lng()}
      },

今、それは働いています!;)

logger.debug "params #{params[:user_coordinate]}"

于 2012-06-05T12:52:09.923 に答える
0

受信側であるRailsコントローラー(この場合はuser_coordinates_controller)内で、パラメーターが何であるかを出力してみてください。-> puts params.inspect

別の注意点として、AJAX呼び出しでPOSTと入力したようです

于 2012-05-30T16:24:05.120 に答える