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