後,我已經有了一個形式與遠程=>真。 而現在我的控制器看起來像:重定向到成功的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 2012-04-11 23:52:08
ajax用於檢查驗證和重複記錄。然後用錯誤信息更新。 當表單成功時,我想要重定向到edit_path。其中有圖像上傳和其他事情正在進行。 – Galaxy 2012-04-12 06:46:44
沒錯,但是你可以在沒有AJAX提交的情況下做JS表單驗證。我知道通過AJAX提交的唯一原因是爲了避免頁面加載。 – jimw 2012-04-12 09:03:07