ruby-on-rails – 如何使用rails remote:true参数与JSON?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何使用rails remote:true参数与JSON?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用rails remote:true参数提交ajax请求时,如何指定我想要返回 JSON对象?一旦 JSON对象被返回,我如何抓住并使用它?

解决方法

根据您的具体情况,有很多方法可以回答(例如:您正在使用jquery和UJS适配器),但是我将使用自己的文档发布文章,以更好地了解整个过程:
我在很大程度上使用这个伟大的 post:我会更新我的答案,因为我目前正在通过这个东西自己做.

您可以将数据类型属性添加到DOM元素中,如下所示:

<%= link_to "Add a new task",new_project_task_path(@project),"data-type" => "json",:id => "add_task_btn" %>

您还可以在jQuery的全局$.ajaxSetup()函数中定义默认的dataType.更改所有Ajax请求:

$.ajaxSetup({
     dataType: 'json'
});

而第三种方式是在beforeSend回调中:

$(“#add_some_button”).live(“ajax:beforeSend”,function(e,xhr,settings){
      new_data_type = “application/json,text/javascript,*/*; q=0.01”;
      xhr.setRequestHeader('accept',new_data_type);
})

(q = 0.01是0和1之间的偏好)

因此,您可以更改该数据类型属性和HTTP标头以满足您的需要.
以下是可以使用的MIME类型列表:Here

而具体的javascript媒体类型列表:Here

从服务器发送的数据格式概述:
1.)Ajax将Accept标头的请求发送到所需的MIME类型.
2.)Rails控制器检查Accept标头以确定应该返回的内容.
3.)控制器将确定该操作是否处理特定的MIME类型.
在rails 3中,我们可以使用respond_with,pre 3.0在控制器动作中设置一个respond_to块.

概述Ajax可以在Rails 3.1中使用的方法

我相信现在的首选方法是使用默认的dataType作为脚本,然后使用js.erb或js.coffee文件处理AJAX请求.

选项:
1.)单击事件:插入DOM元素
2.)通过Ajax提交表单
3.)通过Ajax删除
4.)使用Ajax的客户端验证(在输入字段上使用数据远程)
5.)添加动态选择(在选择字段上使用数据远程)
6.)Ajax分页 – 直接返回HTML.

再次,我包括在这里是我自己的大纲/审查,要获得详细信息,请查看安德烈·辛格的伟大的帖子here.

猜你在找的Ruby相关文章