使用XMLHttpRequest调用Rails方法来更新数据库中的值
Using XMLHttpRequest to call a Rails method to update a value in the db
在html页面上,我在Javascript中使用异步XMLHttpRequest请求来为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);
}
我实际上没有传递任何参数,因为我需要的唯一值存储在cookie中(您将在该方法的代码摘录中看到)。我的路由文件包括以下行:
match'/customer_path', :to => 'activities#update'
最后,Activity表中"update"方法的代码如下:
def update
@dummy_var = Activity.find(cookies[:activity_id])
@dummy_var.column_var = false
render :layout => false
end
我试图更新"column_var"的值在我的活动表的行与cookie指定的:id列。知道我哪里做错了吗?我已经确认Javascript函数正在被调用,并且cookies[:activity_id]已被正确设置。
提前感谢!
我认为答案很简单,尝试在@dummy_var实例变量上调用save。
要用ajax测试这类东西,可以使用Rails.logger.debug,它接受一个字符串。然后,您可以使用调试输出检查日志,看看会发生什么。您还可以使用firebug之类的东西来查看请求是否响应错误。
相关文章:
- 如何在执行 Ajax 请求大量数据库更新时实现进度条
- 用sql数据库更新谷歌地图标记
- 数据库更新后刷新数据表
- 通知浏览器数据库更新的最佳方法
- AJAX 数据库更新
- 数据库更新的用户确认 - php + Ajax
- 如何使用 typicode/lowdb 文件数据库更新项目数组
- 如何在数据库更新时向客户端发送警报,如facebook聊天
- 在数据库更新时通过Jquery Ajax跟踪和操纵内容
- 付款处理成功,但数据库更新失败
- AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
- 我怎么能得到一个文本字段的值从数据库更新的形式
- Angular JS从数据库更新视图
- 使用外部数据库更新多个站点上的html和css
- 如何在不重新加载页面的情况下使用数据库更新游戏的最高分?
- 当数据库更新时,web应用程序中的通知
- php/javascript在数据库更新后更改内联标签
- 从远程数据库更新Kendo UI Mobile中的列表视图
- 如何处理Angular控制器中的错误从MongoDB数据库更新/删除在Express
- onclick提交上的数据库更新字段不起作用