javascript - Rails 中自定义 AJAX 的最佳实践

标签 javascript jquery ruby-on-rails ajax forms

对于标准表格,我知道您可以使用 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/

相关文章:

javascript - 需要 Selenium IDE 中逗号分隔值的数字

javascript - 如何在 Isotope js 中添加事件类?

javascript - 检查 jQuery.each 中的最后一次迭代

javascript - 平面着色器 (fss.js) 大小为 100%?

用于在页面上加载图像的 JavaScript 事件监听器

jquery - 使用 JQuery 在按钮上添加 onclick 操作

jquery - 在 Rails 3 中,我使用的是 jQuery Tokenize 插件,但表单提交的是值,而不是 id

ruby-on-rails - 使用带有 %s 和 % 以及多个字符串替换参数的 print 而不是 sprintf

ruby-on-rails - 某处是否有所有国家/地区的 Yaml 或 SQL 插入列表?

javascript - 如何删除数据库中的概念页面?