如何在 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/