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 応答では成功であることを認識しています。後でこれを処理する方法に対処できます。今、私は何を達成できるか知りたいだけです。
最後のメモは、これがレール 2.3 にあることです (まだアップグレードの過程にあります)。しかし、ujs で動作するようにすべての jquery ライブラリ (rails.js/jquery.js/etc) を更新しています。
ありがとう