特定のアクションを完了した後、このajax呼び出しがあります
$.ajax({
type: "POST",
url: $("#myform").prop('action'),
data: $("#myform").serialize(),
xhrFields: {withCredentials: true},
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').last().attr('content'));
}
});
create アクションを参照するこの ajax 呼び出しなので、以前に作成したセッションでフォームのパラメーターを保存したいと思います。だから私はこれを作成アクションに入れました
def create
session[:my_session].deep_merge!(params[:user])
puts session[:my_session]
セッションを印刷して、サーバーから正しいパラメーターが含まれていることを確認します。ええ、正しい値で印刷されています。
{"profile_id"=>"1000", "first_name"=>"john", "last_name"=>"vieira", "email"=> "john@sandsora.com"}
ここでの問題は、その呼び出しの後です。セッションは、保存したデータを保存しません!つまり、この割り当ての前に最新のデータを保存したことになります。そのエラーを検索したところ、CSRFトークンエラーである可能性があり、beforeSend
関数を追加して修正しましたが、まだ同じ問題があるので、何か提案をお願いします?