Мы работаем с Rails 3.2.19 и Ruby 2.1.2.Правильно ли указывать «: html => {: multipart => true}» для form_for?
У нас есть наследие строки кода (на самом деле, больше, чем один, но эта линия представляет особый интерес), который читает
form_for [@commentable, @comment], :html => { :multipart => true, :class => "lightbox_form"} do |f|
данные формы могут включать или не включать загруженный файл в по усмотрению пользователя.
Многие примеры в SO см указания параметров :multipart
, но потом я вижу этот ответ на Form_for with :multipart => true spits out, а затем в глядя на документы в http://guides.rubyonrails.org/v3.2.19/form_helpers.html#uploading-files, я вижу, что это не должно быть необходимым (за исключением случаев использования form_tag
). Я также вижу эту дискуссию в https://github.com/rails/rails/issues/10176, что добавляет к моей путанице.
Я прошу отчасти, потому что мы получаем ошибки EOF в стойке (нет содержимого, поступающего на многопараграфный парсер, см. Rack throwing EOFError (bad content body), если вас интересуют эти детали).
Возможно, наш код ранее был запущен в ранних версиях Rails, если это было необходимо (и, возможно, это просто перерыв). Но, учитывая все остальные примеры SO, которые включают :multipart
, я хочу лучше понять, нужно ли :multipart
с form_for
, прежде чем я удалю его и какие побочные эффекты могут возникнуть.
Благодарим за ответ. Итак, кажется, что добавление ': multipart' просто постороннее для' form_for' (с учетом условия, которое вы дали). Или он действительно меняет поведение, чтобы включить его, если он не нужен другим (например, форсировать multipart, если он в противном случае не может быть использован)? – rdnewman
В том числе, он будет устанавливать форму для многократного всегда, даже если это не нужно. Оставляя это, атрибут будет установлен только в том случае, если 'form_builder.file_field' запускает многопроцессорный режим. – elektronaut