我們正在運行Rails 3.2.19和Ruby 2.1.2。對於form_for指定「:html => {:multipart => true}」是否正確?
我們的代碼的傳統線路(實際上,不止一個,但此行是特別值得關注的),上面寫着
form_for [@commentable, @comment], :html => { :multipart => true, :class => "lightbox_form"} do |f|
表單數據可能會或可能不包括在上傳的文件用戶的自由裁量權。
中這樣的例子很多參考指定: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的早期版本中運行時,它可能是必要的(因此可能只是一個保留)。但考慮到所有其他示例,包括:multipart
,我想更好地瞭解是否或何時使用:multipart
與form_for
,然後再將其刪除,以及我可能遇到哪些副作用。
謝謝你的回覆。那麼看起來,添加':multipart'對於'form_for'來說是無關緊要的(根據你給出的條件)。還是它實際上改變了包含它的行爲,如果沒有其他需要的話(比如當它可能不被使用時強制多部分)? – rdnewman 2014-10-13 16:59:49
包括它會將表格設置爲始終爲多部分,即使沒有必要。如果沒有,只有在form_builder.file_field觸發multipart模式時纔會設置該屬性。 – elektronaut 2014-10-15 12:46:27