我正在运行带有 Prototype 和 RJS 的 Rails 3.0 应用程序。我想转换为只使用 jQuery。
我的问题是
1. 使用jQuery时是否可以完全摆脱RJS?
和
2.如果不是,我如何转换以下内容:
我的index.html.erb中有以下 DIV 元素:
<div id="students"></div>
我有一个ajaxCalls.js.erb包含以下内容:
$.ajax({
url: '<%=populate_students_path()%>',
type: 'POST',
data: 'authenticity_token=' + AUTH_TOKEN,
dataType: 'html', // Consider changing to HTML if this doesnt work
beforeSend: function (xhr) {
xhr.setRequestHeader("Accept", "text/javascript");
}
}).done(function (data) {
// TODO Populate table with populate function
var users_table = $('#students').dataTable({
'aData': data
});
});
我得到以下回复:
try {
populate("{\"54\":{\"section\":\"-\",\"filter_table_row_contents\":\"<td>\\n c5leharf\\n</td>\\n<td>\\n Lehar\\n</td>\\n<td>\\n Franz}")
}
我有一个populate.rjs,其中包含:
page.call "populate", @students.to_json
这可能会调用以下内容,但我不确定:
function populate(json_data) {
users_table.populate(json_data);
users_table.render();
}
所以,这里的问题是**
如何使我的响应正确呈现?如何从 AJAX 调用检索的数据中删除填充函数?如何获得纯 JSON?
编辑:Kaeros 的回答有效,我的控制器看起来像:
respond_to do |format|
format.json { render :json => @students_data }
end