多部分表单在Rails中不起作用

时间:2012-01-16 03:52:58

标签: ruby-on-rails ruby ruby-on-rails-3 multipartform-data

我一直在尝试在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,但每次都失败,可能是因为它不是多部分表单。

帮助! :)谢谢。

3 个答案:

答案 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)

事实证明,我是一个大白痴,原始形式工作正常,除了......

我正在部分渲染表单,但是我将部分包装在一个标准的非多部分表单标签中,该标签覆盖了多部分表单,并且有点令人惊讶地没有引发任何错误。

无论哪种方式,我都是一个愚蠢的人,因为没有注意到这一点,但它现在已经解决,文件上传工作完美。