rdn*_*man 2 ruby rack ruby-on-rails multipartform-data form-for
我们正在运行Rails 3.2.19和Ruby 2.1.2.
我们有一个传统的代码行(实际上,不止一行,但这一行特别值得关注)
form_for [@commentable, @comment], :html => { :multipart => true, :class => "lightbox_form"} do |f|
表格数据可以包括或不包括由用户自行决定的上传文件.
SO中的许多示例都指的是指定:multipart设置,但后来我在Form_for中看到了这个答案:multipart => true吐出然后查看http://guides.rubyonrails.org/v3.2.19/form_helpers上的文档. html#uploaded-files,我看到它不应该是必要的(除非使用form_tag).我也在https://github.com/rails/rails/issues/10176上看到这个讨论,这增加了我的困惑.
我问的部分是因为我们在Rack中遇到EOF错误(没有内容通过多部分解析器; 如果你对这些细节感兴趣,请参阅Rack throw EOFError(错误内容正文)).
我们的代码可能以前在早期版本的Rails中运行时可能是必要的(因此可能只是一个保留).但是考虑到包含SO的所有其他示例:multipart,我想在删除之前更好地了解是否:multipart需要或何时需要,form_for以及我可能遇到的副作用.
这不是对Rails 3.1要求,后来,只要你使用form_for具有file_field这样的:
<%= form_for @person do |f| %>
<%= f.file_field :picture %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这不起作用:
<%= form_for @person do |f| %>
<%= file_field_tag 'person[picture]' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
您可以轻松验证它是否正常工作.检查生成的HTML并enctype="multipart/form-data"在表单标记上查找属性.除了设置编码类型之外,Rails没有任何魔力,所以如果属性存在,那么你就是好的.
| 归档时间: |
|
| 查看次数: |
3786 次 |
| 最近记录: |