首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用XMLHttpRequest调用Rails方法来更新db中的值

使用XMLHttpRequest调用Rails方法来更新db中的值
EN

Stack Overflow用户
提问于 2011-11-21 09:52:04
回答 1查看 1.5K关注 0票数 1

在html页面上,我在Javascript中使用异步XMLHttpRequest请求为Ruby on Rails应用程序更新数据库中的值。此更新需要在用户不知情的情况下“在幕后”进行。不幸的是,因为这个请求没有输出html (它是一个异步请求),所以很难调试为什么数据库值没有更新。

在初始html.erb文件中,javascript如下所示:

代码语言: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);
}

我实际上没有传递任何参数,因为我需要的唯一值存储在cookie中(您将在摘录中看到我的方法代码)。我的路由文件包含以下行:

代码语言:javascript
运行
复制
match'/customer_path', :to => 'activities#update' 

最后,Activity表中我的"update“方法的代码如下:

代码语言:javascript
运行
复制
def update
  @dummy_var = Activity.find(cookies[:activity_id])
  @dummy_var.column_var = false
  render :layout => false
end

我正尝试在我的活动表中为具有cookie指定的:id列的行更新"column_var“的值。你知道我哪里错了吗?我已经确认正在调用Javascript函数,并且已经正确设置了cookies:activity_id。

提前感谢!

EN

Stack Overflow用户

回答已采纳

发布于 2011-11-21 09:58:18

我认为这里的答案很简单,试着在@dummy_var实例变量上调用save。

要用ajax测试这类东西,可以使用Rails.logger.debug,它接受一个字符串。然后,您可以使用debug输出检查日志,看看发生了什么。此外,您还可以使用firebug之类的工具来查看请求是否响应错误。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8206458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档