Составная форма не работает в Rails - PullRequest
1 голос
/ 16 января 2012

В последний день я пытался создать форму из нескольких частей в 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 ]

3 голосов
/ 18 января 2012

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

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

Разница заключается в передаче пустых опций в rails helper, и он будет читать ваши 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 %>
1 голос
/ 19 октября 2015

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

<%= 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)

0 голосов
/ 08 марта 2012

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

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

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

...