我使用Rails 4和Ruby 2以及Carrier Wave和jQuery Mobile 1.3,並且用戶有一個擁有徽標的配置文件。我已經在控制檯中測試了後端載波,並且它可以工作。Rails的file_field沒有上傳任何內容
問題是在助手的形式,我做什麼並不重要,但一個file_field將顯示,讓我選擇一個圖像,但它不通過參數。如果我將其更改爲不存在的字段,例如。 =f.file_field :field_not_permitted_in_strong_params
它不會翻倒,並且文件選取器可見,如果我將其更改爲=f.text_field :field_not_permitted_in_strong_params
,則只有這樣,rails纔會踢入並抱怨該字段不存在。
所以我的問題基本上是,我可以上傳文件客戶端,但它不會通過表單數據發送,或者出現在params散列中,而我所有的其他字段都可以正常工作。
這裏是形式的一個片段:
= form_for(@business_profile, :html => {:multipart => true}, :url => business_profile_path, :validate => true) do |f|
=image_tag(@business_profile.logo.url, class: 'business-logo')
%div{:data => {:role => 'fieldcontain'}}
=f.file_field :logo
- # Basic Information
%div{:data => {:role => 'collapsible', :collapsed => 'false'}}
%h3
Basic Information
%div{:data => {:role => 'fieldcontain'}}
= f.label :name, 'Business name:'
= f.text_field :name
%div{:data => {:role => 'fieldcontain'}}
= f.label :address, 'Address:'
= f.text_area :address, class: 'address'
只是作爲一個側面說明,我覺得你並不需要設置多。這來自FormHelper.file_field的文檔「在form_for塊中使用此方法將把封閉表單的編碼設置爲multipart/form-data。」 – phoet
@phoet現貨上,不幸的是別的東西是負責的問題 – Lee