在Heroku上使用多部分表单路由问题
这是一个非常奇怪的问题,不幸的是我无法提供大量的信息,因为我甚至不知道从哪里开始诊断问题。 我希望有人听到神奇地知道该怎么做,我很乐意在必要时澄清。
出于某种原因,无论何时我使用Chrome在Heroku上提交带有文件附件的新的多部分表单,我都会在提交默认的“索引”操作时发送 – 也就是说,如果我提交了我将被发送到的页面一个GET而不是一个POST。
我在Rails中使用标准的RESTful路由,所以我在routes.rb中有以下内容:
resources :documents do member do get :download, :follow end end
我的表格很标准:
{ :multipart => true } do |f| %>
但同样,这被视为GET而不是POST请求,因此我只是被重定向到/ documents。 即使我在表单定义中手动指定:method => :post
也是如此。
真正非常奇怪的是,这只发生在Heroku上,只发生在Chrome上。 表单在我的本地开发版本上使用Chrome或在Heroku上使用Safari正常工作。
代码中的任何地方都没有重定向,当我检查Heroku日志时,它只报告对/ documents的GET,而不是后续处理的POST可以解释这一点。
任何帮助将不胜感激。 我真的不知道从哪里开始尝试解决这个问题。
更新:我使用的是Chrome for Mac,版本12.0.742.53 beta。
这是表单输出。
这些路线似乎没有什么不妥,包括以下内容:
POST /documents(.:format) {:action=>"create", :controller=>"documents"}
您可以确认视图中有<%= csrf_meta_tag %>