def create
@listing = current_user.listing.new(listing_params)
if @listing.save
if params[:attachment]
params[:attachment].each do |key, val|
@listing.attachments.create(attachment: val)
end
end
respond_to do |format|
format.json { render json: @listing }
end
end
end
リストの作成コントローラにそのコードがあり、画像とビデオの添付ファイルとしてdropzone JSを使用しています。オブジェクトを作成するまではすべてがうまくいっていますが、フォームが送信された後に新しく作成されたリストにリダイレクトする方法を理解できないようです。 ajaxリクエストはGETリクエストであり、POSTリクエストではなく、コントローラ内のcreateアクションによってオブジェクトがすでに作成されているため、POSTリクエストによって2つのオブジェクトが作成されます。私はレンダリングJSを使用してみましたが、レンダリングJSをウィンドウの位置でコントローラーで使用しましたが、何もしないか、フォーマットが正しくないというエラーが表示されます。後に新しいURLに移動するためにブラウザを指示するsuccess
関数内Rails、AJAX、dropzone、carrierwave、リダイレクトの処理
location.href = "http://www.website.com/new_listing"
:
$('#new_listing').on('submit', function(e){
e.preventDefault();
e.stopPropagation();
myDropzone.processQueue();
var form = $(this);
var post_url = form.attr('action');
$.ajax({
type: "GET",
url: post_url,
dataType: "JSON",
success: function(data) {
console.log(data)
}
});
});
私はそれに似たようなことをしました。コントローラーにJSON経由でリスティングIDをレンダリングさせ、JSのsuccess関数に渡してlocation.hrefに渡す必要がありました。 –
私は一度にAmazone s3に5つ以上の画像をアップロードしようとしています。私のAJAXコードは 'success'ブロックにあります。 4つの画像を選択してアップロードするとどうなりますか?しかし、4つ以上の画像をアップロードするとアップロードされますが、 'success'ブロックでコールバックが取得されません。なぜなのかご存知ですか? – kpp