私はremote => trueのフォームを持っています。動作しますが、非常に不器用な感じ成功したAjaxフォームへのリダイレクト
# POST /items
# POST /items.json
def create
@item = @store.items.build(params[:item])
respond_to do |format|
if @item.save
format.html { redirect_to edit_admin_item_path(@item), :flash => {:success => "#{@item.name} was successfully created."} }
format.js { render :js => "window.location.href = ('#{edit_admin_item_path(@item)}');"}
format.json { render json: @item, status: :created, location: @item }
else
format.html { render action: "new" }
format.js { render :partial => 'fail_create.js.erb', :locals => { :ajax_errors => @item.errors.full_messages } }
format.json { render json: @item.errors, status: :unprocessable_entity }
end
end
end
: そして今、私のコントローラは次のようになります。それはまた私に実際に悲しい時であるフラッシュ通知を使用させることを許さない。
理想的には、私は単に「format.js {redirect_toを...}使用するか、リクエストヘッダとredirect_toに対してチェックすることができる必要がありますように感じる。ったく!
私は最善の解決策が何であるかわからないんだけどどんなアドバイスもすばらしいことですが、事前に感謝しています。
- PS - 私はこの前に多少尋ねられましたが、役に立たないことを知っています:How to redirect after a successful AJAX form submission。
おそらく私は何かが欠けているかもしれませんが、ページロードを必要としないAJAXフォームの提出の要点ではありませんか?あなたがリダイレクトするつもりなら、昔ながらの提出だけでなく、 – jimw
ajaxは、検証と重複レコードのチェックに使用されます。次に、エラーメッセージを更新します。 フォームが成功したら、私はedit_pathにリダイレクトしたいと思っています。画像のアップロードやその他の作業が進行中です。 – Galaxy
右ですが、AJAXの提出なしでJSフォームの検証を行うことができます。私がAJAX経由で提出することがわかっている唯一の理由は、ページの読み込みを避けることです。 – jimw