2012-01-16 3 views
1

Я пытаюсь создать многочастную форму в Rails в течение последнего дня, что является сумасшедшим, но я действительно не уверен, как обойти эту.Многостраничная форма не работает в 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"> 

Для жизни меня я не могу понять, почему форма не отображается как многочастная. Эта конкретная форма используется для загрузки изображения с помощью paperclip в AWS, но с ошибкой каждый раз, по-видимому, потому, что он не является многочастной формой.

Помощь! :) И спасибо.

ответ

3

Привет согласно Rails API v3.1.3, ваш код должен выглядеть следующим образом:

<%= form_for @account,{},:html => {:multipart => true } do |f| %> 

Разница заключается в том, пропуская пустые варианты рельсы помощника, и он будет читать ваши параметры HTML.

Благодаря

UPDATE:

Вот код копируется из одного из моих проектов: Она работает и работает под 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 %> 
+0

К сожалению, это дает тот же результат - он не добавляет ENCTYPE параметр для вывода HTML. Большое спасибо за попытку! –

+0

@StevenMichaelThomas Я обновил ответ с реальным рабочим кодом, скопированным из моего проекта. Надеюсь, это даст вам некоторую идею. ура – peterpengnz

0

оказывается, что я большой идиот, и оригинальная форма работала нормально, КРОМЕ ...

Я представлял форму в частичном, но я обернул частичное в стандартном теге, не являющемся многочастным форматом, который перезаписал многостраничную форму и несколько неожиданно не вызвал никаких ошибок.

В любом случае, я глуп, потому что не замечаю этого, но теперь он разрешен, и загрузка файлов работает отлично.

1

Это сработало для меня.

<%= form_for(@account, html: { :multipart => true }) do |f| %> 

или

<%= form_for(@account, html: { :enctype => 'multipart/form-data' }) do |f| %> 

В соответствии с @ peterpengnz отвечают, обеспечивая пустой {} параметр для form_for получил ArgumentError:

wrong number of arguments (3 for 1..2)

Смежные вопросы