javascript - 从 Coffeescript 更新用户属性?

标签 javascript ruby-on-rails ajax ruby-on-rails-4 coffeescript

如何在 Rails 中编写 Coffeescript 函数来更新数据库列?我想 Ajax 调用是理想的选择:

id = $('#document').attr('data-document-id')
$.ajax
  url: "/documents/#{id}/update_attr"
  type: "GET"
  success: (data) ->
    console.log(data)

这是唯一的方法吗?或者有什么更好的吗?

最佳答案

好吧,请记住前端代码(html、css、js)无法直接访问数据库。所以你需要一个 AJAX 请求。

REST 最佳实践要求您使用 POST/PUT/PATCH 方法而不是 GET 方法,后者永远不会更改应用程序的状态。

此外,您没有向 Rails 后端传递任何值。

$.ajax
   url: "/whatever/#{id}"
   type 'POST'
   data:
     key: value
   success: (data)->
     console.log data

在 Rails 方面,您需要在 config/routes.rb 中设置适当的路由:

post '/whatever/:id', to: 'some_controller#some_action'

仍然理想的是,遵循最佳实践,您可能有某种

resources :apples

已经映射到ApplesController。您现在必须执行该操作,如下所示:

def update
  @object = Whatever.find(params[:id])
  if @object.update(key: params[:key]
    render json: { success: 1 }
  else
    render json: { success: 0 }
  end
end

该实现并不完整(它不处理 HTML 请求、多键更新和其他奇特的东西),但它仍然应该可以解决您的问题。

关于javascript - 从 Coffeescript 更新用户属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32216506/

相关文章:

javascript - 当我调整浏览器大小时,我需要帮助让我的页脚不覆盖我的内容

javascript - 图像不会在弹出框之前显示

mysql - Rails - 保存每日指标

ruby-on-rails - PaperTrail 中的自定义表格与 Rails 4

php - PHP/Ajax 脚本中的 Order By 语法问题

javascript - Javascript 正则表达式缺乏后视的解决方法

javascript - 如何在刷新后删除 id (#) 目标

ruby-on-rails - 无法在 Rails 应用程序的 lib 文件夹中使用定义的类

javascript - 限制发布请求的数量(Javascript + node.js + jQuery)

PHP MySQL jQuery/AJAX 问题