所以我有提交一个表单到使用Javascript(目标为空)外部车的应用程序,然后我希望窗口导航到Rails控制器创建一个小的跟踪模型,控制器等:Chrome在Rails中提交窗体并导航窗口?
def add_to_cart
@product = Product.find(params[:id])
@product.cart_trackers.create
redirect_to :back
end
和JavaScript(在的link_to,辅助性的onclick):
document.forms['addCart#{product.id}'].submit();
window.location.href=\"/products/add_to_cart/#{product.id}\";
return false;
而这种奇妙的作品在Firefox和Internet Explorer,但谷歌浏览器抛出一个合适的了这么多的导航。我意识到AJAX可能是一个有价值的解决方案,但由于环境下运行该应用程序(这是一个Prototype,Jquery,iFrames和包括clustercrap)我想避免它,如果可能的话。 Chrome的回应是实际运行window.location ...代码并跳过表单提交。如果没有其他代码,Chrome会执行单一操作。
那么,写出来的正确方法是什么?或者我应该只是在一些AJAX中进行争吵?
那么AJAX似乎是要走的路?再一次,从过去的开发人员,很难遵循他们的脚本导入和重命名约定(他们不断向jQuery.noConflict()分配新变量)因此让jQuery或Prototype在漏斗末尾工作是半梦魇的 –
它可能是你可以做的事情,而不会纠结在所有这些。 AJAX意味着双向通信 - 即您击中服务器并发回响应。你真正需要做的就是点击它看起来像的服务器。或者,您可以只从控制器执行两个步骤吗?提交表单,然后控制器重定向到/products/add_to_cart/#{product.id}? – dantswain
这将工作,但表格在应用程序外部提交 –