我正在使用带有 Carrier Wave 的 Rails 4 和 Ruby 2 以及 jQuery Mobile 1.3,并且用户有一个带有徽标的配置文件。我已经在控制台中测试了后端载波波的东西,它可以工作。
问题出在表单助手中,我做什么都没关系,但会显示一个 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'