使用JQuery的RoR PUT

时间:2012-05-29 13:53:17

标签: jquery ruby-on-rails ajax post put

我有一个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);
               }
        });

正在调用错误函数。这可能是什么问题?

感谢您的时间;)

2 个答案:

答案 0 :(得分:3)

我发现了问题。在我的控制器中使用logger.debug我注意到它正在期待参数[: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]}”

答案 1 :(得分:0)

在作为接收端的Rails控制器中,在你的情况下user_coordinates_controller,尝试打印出参数是什么, - >把params.inspect

另一个注意事项,看起来你的AJAX调用上有类型POST