Javascript Rails中自定义AJAX的最佳实践

Javascript Rails中自定义AJAX的最佳实践,javascript,jquery,ruby-on-rails,ajax,forms,Javascript,Jquery,Ruby On Rails,Ajax,Forms,对于标准表单,我知道可以使用remote:true通过AJAX提交表单。但是在没有标准表格的情况下呢?例如,我有一张美国的SVG地图。当用户单击某个状态(即元素)时,它会触发一个AJAX请求,以便我的应用程序可以在数据库中存储对该状态的投票。我只需将click事件绑定到path元素,然后使用标准的jQuery$.ajax()方法,就可以很好地实现这一点。但是,我不确定是否有一种不同的、更“标准”的方式通过非表单交互触发AJAX请求 我也不确定Rails控制器应该如何响应这个请求的最佳实践是什么。

对于标准表单,我知道可以使用
remote:true
通过AJAX提交表单。但是在没有标准表格的情况下呢?例如,我有一张美国的SVG地图。当用户单击某个状态(即
元素)时,它会触发一个AJAX请求,以便我的应用程序可以在数据库中存储对该状态的投票。我只需将
click
事件绑定到
path
元素,然后使用标准的jQuery
$.ajax()
方法,就可以很好地实现这一点。但是,我不确定是否有一种不同的、更“标准”的方式通过非表单交互触发AJAX请求

我也不确定Rails控制器应该如何响应这个请求的最佳实践是什么。目前,我只是让它以以下方式响应:

if vote.save
    render json: {success: true}
else
    render json: {success: false, data: vote.errors}
end
然后在我的
$.ajax
success回调中检查
success
的值,并在那里处理
false
的情况


我对Rails非常陌生,这一切都是我自己编的。这是黑的吗?在这种不涉及表单的情况下,是否有不同的、标准化的方法来发送和响应AJAX请求?

您为AJAX json请求所做的是合理的,并且您会在许多rails代码中发现这种结构,这些代码特别需要与需要json的javascript客户端通信


但是,您还应该注意,我们通常更喜欢js而不是json(如果可以选择),因为这样我们就可以像您在问题中提到的那样利用jquery ujs(remote:true)

您为ajax json请求所做的是合理的,您会在许多rails代码中发现这种结构,这些代码特别需要与需要json的javascript客户端通信


但是,您还应该注意,我们通常更喜欢js而不是json(如果有选择的话),因为这样我们就可以像您在问题(remote:true)中提到的那样利用jquery ujs了。

对于控制器代码,您不会比jquery:更标准了——这很好。但有些人认为最好使用专门的json构建器,如jbuilder、rabl或active_model_序列化器。对于控制器代码,没有比jquery更标准的了——这很好。但有些人认为最好使用专门的json构建器,如jbuilder、rabl或active_model_序列化器。