我一直在尝试在Rails中创建一个多部分表单,这很疯狂,但我真的不确定如何解决这个问题。
目前,以下是我视图中的代码:
<%= form_for @account, :html => {:multipart => true } do |f| %>
但是,返回的HTML如下:
<form accept-charset="UTF-8" action="/accounts/1" class="edit_account" id="edit_account_1" method="post">
对于我的生活,我无法弄清楚为什么表格不会出现在多部分中。此特定表单用于使用回形针将图像上传到AWS,但每次都失败,可能是因为它不是多部分表单。
帮助! :)谢谢。
答案 0 :(得分:3)
嗨,根据Rails API v3.1.3,您的代码应如下所示:
<%= form_for @account,{},:html => {:multipart => true } do |f| %>
不同之处在于将空选项传递给rails helper,它将读取您的html参数。
由于
更新:
以下是从我的一个项目中复制的代码: 它正在Rails 3.1下运行并运行
可能你可以尝试在“form_for”之后加上括号
<%= form_for(@account,{},:html => { :id=>"account_form",:multipart => true }) do |f| %>
<%= render :partial => "form", :object => f %>
<%= f.submit 'create' %>
<% end %>
答案 1 :(得分:1)
这对我有用。
<%= form_for(@account, html: { :multipart => true }) do |f| %>
或
<%= form_for(@account, html: { :enctype => 'multipart/form-data' }) do |f| %>
根据@ peterpengnz的回答,为{}
提供一个空的form_for
参数得到了ArgumentError:
错误的参数数量(3为1..2)
答案 2 :(得分:0)
事实证明,我是一个大白痴,原始形式工作正常,除了......
我正在部分渲染表单,但是我将部分包装在一个标准的非多部分表单标签中,该标签覆盖了多部分表单,并且有点令人惊讶地没有引发任何错误。
无论哪种方式,我都是一个愚蠢的人,因为没有注意到这一点,但它现在已经解决,文件上传工作完美。