后,我已经有了一个形式与远程=>真。 而现在我的控制器看起来像:重定向到成功的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