2012-05-29 2 views
2

У меня есть сервер Rails, и я пытаюсь сделать PUT, используя функцию $ .ajax. Сервер дает POST 200 OK, но данные БД он не обновляется.RoR PUT с JQuery

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

Что вы видите на консоли сервера? Вы пытались добавить «.json» в строку url? –

ответ

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]}"

0

Внутри контроллера Rails, который приемный конец, в вашем случае user_coordinates_controller, попытайтесь распечатать то, что параметры, -> ставит params.inspect

Другое примечание: похоже, у вас есть тип POST на ваш вызов AJAX

Смежные вопросы