我有一个通过 ajax 提交的表单。如果表单成功提交,页面将重定向到别处。如果表单失败,我会使用部分 (.js.erb) 和内联错误重新呈现表单。
这很好用。
我遇到的问题是我希望在页面重新呈现时必须将某种类型的 json 响应/数据发送回 application.js。只是,我不确定这是否可能。
//application.js
$(document).on('click','#sumbit_div',function(e) {
$.ajax({
url: '/create',
type: 'post',
dataType: 'script',
data: $('#the_form').serialize(),
cache: false,
success: function(xhr,data) {
console.log('success');
},
error: function(data) {
console.log('error')
console.log(data.value_from_format_json);
},
});
});
//在控制器中创建动作。
rescue ActiveRecord::RecordInvalid => e
respond_to do |format|
format.json {render :json => { :status => 403,:success => false }}
format.js
end
我认识到即使提交失败也是 .ajax 响应中的成功。我可以处理之后如何处理。现在我只想知道我是否能完成我所追求的。
最后一点是这是在 Rails 2.3 上(仍在升级过程中)。但我有所有 jquery 库(rails.js/jquery.js/etc)更新以使用 ujs。
谢谢