Использование XMLHttpRequest для вызова метода Rails для обновления значения в БД - PullRequest
1 голос
/ 21 ноября 2011

Находясь на html-странице, я использую асинхронный запрос XMLHttpRequest в своем Javascript для обновления значения в моей базе данных для приложения Ruby on Rails.Это обновление должно происходить «за кулисами» без ведома пользователя.К сожалению, поскольку для этого запроса нет выходного html (это асинхронный запрос), очень трудно отладить, почему значение базы данных не обновляется.

В исходном файле html.erb javascript выглядитследует:

function NAME() {
  var url = '/custom_path'; // this path points to the update method in my controller
  var request = new XMLHttpRequest();
  var params = null;

  request.open("POST",  url, true); // open asynchronous post request
  request.send(params);
}

На самом деле я не передаю никаких параметров, потому что единственное, что мне нужно, хранится в куки (вы увидите в отрывке мой код метода).Файл My Routes содержит следующую строку:

match'/customer_path', :to => 'activities#update' 

Наконец, код моего метода «update» в таблице Activity выглядит следующим образом:

def update
  @dummy_var = Activity.find(cookies[:activity_id])
  @dummy_var.column_var = false
  render :layout => false
end

Я пытаюсь обновитьзначение "column_var" в моей таблице Activity для строки со столбцом: id, указанной в файле cookie.Есть идеи, где я иду не так?Я подтвердил, что вызывается функция Javascript и что куки [: activity_id] установлены правильно.

Заранее спасибо!

1 Ответ

1 голос
/ 21 ноября 2011

Я думаю, что ответ здесь довольно прост, попробуйте вызвать save для переменной экземпляра @dummy_var.

Чтобы проверить подобные вещи с помощью ajax, вы можете использовать Rails.logger.debug, который принимает строку. Затем вы можете проверить журналы с результатами отладки, посмотреть, что произойдет. Также вы можете использовать что-то вроде firebug, чтобы увидеть, отвечает ли запрос ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...