对于标准表格,我知道您可以使用 remote: true
通过 AJAX 提交表单。但是如果没有标准表格怎么办?例如,我有一张美国的 SVG map 。当用户单击某个状态(即 <path>
元素)时,它会触发 AJAX 请求,以便我的应用程序可以在数据库中存储对该状态的投票。我只需绑定(bind) click
就可以正常工作事件至path
元素,然后使用标准 jQuery $.ajax()
方法。但是,我不确定是否有一种不同的、更“标准”的方式通过非表单交互触发 AJAX 请求。
我也不确定 Rails Controller 应如何响应此请求的最佳实践是什么。现在,我只是让它响应:
if vote.save
render json: {success: true}
else
render json: {success: false, data: vote.errors}
end
然后我检查 success
的值在我的$.ajax
成功回调并处理false
的情况那里。
我对 Rails 很陌生,这一切都是我自己编造的。这是哈克吗?在这种不涉及表单的情况下,是否有不同的标准化方法来发送和响应 AJAX 请求?
最佳答案
您对 ajax json 请求所做的操作是合理的,您会在许多 Rails 代码中发现该结构,这些代码专门与需要 json 的 javascript 客户端进行通信
但是,您还应该注意,我们通常更喜欢 js 而不是 json(如果可以选择),因为这样我们就可以利用 jquery-ujs,正如您在问题中提到的那样(远程:true)
关于javascript - Rails 中自定义 AJAX 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31010317/