jquery-file-upload を使用してファイルをアップロードしています。
ファイルのアップロードが完了したら、アップロードされたドキュメントの編集パスにリダイレクトしたいと考えています。
ファイルを送信するためにjavascriptを使用しています:
return data.submit();
ファイルのアップロードが完了したら、どのように edit_document_path にリダイレクトできますか? 次のコードを試しました:
$('#fileupload')
.bind('fileuploadstop', function (e, data) {
window.location.href = "#{edit_document_path(@document)}";
})
js を介してリダイレクトできるように、アップロードされたドキュメントの ID (または @document 自体) を保存または返す方法はありますか?
編集
私はhtml.hamlファイルに直接jsを持っています
%script(type="text/javascript")
$('#new_document').fileupload({
dataType: 'json',
add: function (e, data) {
jqXHR = data.submit()
},
done: function (e, data) {
window.location = json.url
},
progress: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('.bar').css('width', progress + '%');
}
});
ここに私のコントローラーがあります:
def upload
@document = Document.new(params[:document])
respond_to do |format|
format.json { render json: { url: edit_document_path(@document) } }
end
end
ただし、ページがリダイレクトされないため、JSON 応答が機能していないようです。何が間違っていますか?
ありがとうございました