【问题标题】:Submitting multipart form leads to internal server error on Rails 4.2在 Rails 4.2 上提交多部分表单会导致内部服务器错误
【发布时间】:2016-09-03 10:57:40
【问题描述】:

提交简单的多部分表单时,服务器崩溃并显示“内部服务器错误”。 我已将表格缩小到最小:

<%= form_for @media_object, :html => {:multipart => true} do |f| %>
    <%= f.file_field :media_object_image %>
    <%= f.submit "Create!" %>
<% end %>

日志跟踪:

错误 ArgumentError: 意外前缀: {"RackMultipart"=>nil, ""=>nil} /Users/christer/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tmpdir.rb:111:in `make_tmpname' /Users/christer/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tmpdir.rb:129:in `create' /Users/christer/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/tempfile.rb:132:in `initialize' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart/parser.rb:22:in `new' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart/parser.rb:22:in `block in create' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart/parser.rb:135:in `get_current_head_and_filename_and_content_type_and_name_and_body' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart/parser.rb:59:in `block in parse' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart/parser.rb:56:in `loop' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart/parser.rb:56:in `parse' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/multipart.rb:25:in `parse_multipart' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/request.rb:375:in `parse_multipart' /Users/christer/.rvm/gems/ruby-2.3.0@teamhubs4/​​gems/rack-1.6.4/lib/rack/request.rb:207:in `POST'

由于打开的多部分文件的最大数量,谷歌搜索会发现 Rails 4.2 的多部分提交问题,但这肯定是不同的。

我正在运行带有 Ruby 2.3 的 Rails 4.2.6。

【问题讨论】:

  • 您的错误消息和堆栈跟踪与 imgur issue #4 上发布的非常相似。如果在 Gemfile 中引用了 imgur,您可能想尝试从 Gemfile 中删除它。

标签: ruby-on-rails multipart server-error


【解决方案1】:

虽然我没有使用 imgur gem,但 Phil Ross 让我走上了正轨。我确实使用 to_hash 方法扩展了 Array 类。删除此扩展程序,瞧!一切正常。

【讨论】:

    【解决方案2】:

    imgur 并不孤单。 dropbox gem 也是 known 造成的。检查您的 Gemfile。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2013-07-14
      • 2014-11-26
      • 1970-01-01
      • 2014-01-31
      • 2018-05-23
      • 1970-01-01
      相关资源
      最近更新 更多