Rails file_field不会上传任何内容
我正在使用Rails 4和带有Carrier Wave的Ruby 2以及jQuery Mobile 1.3,并且用户有一个带有徽标的配置文件。 我已经在控制台中测试了后端Carrier Wave的东西并且它可以工作。
问题在于帮助forms,我做的并不重要,但是会显示一个file_field,让我选择一个图像,但它不会在params中出现。 如果我将其更改为不存在的字段,例如。 =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'
好吧花了好几个小时就可以了,问题是jQuery Mobile默认使用Ajax提交表单,而且不使用插件等就无法使用Ajax提交文件。所以解决方法是禁用这样的Ajax:
= form_for(@business_profile, :url => business_profile_path, :validate => true, :html => { :'data-ajax' => false }) do |f|
- 如何从Carrierwave Uploader对象引用父模型
- Rails + CarrierWave:NoMethodError:nil的未定义方法`name’:NilClass
- 为什么carrierwave导致NameError:未初始化的常量Micropost :: PictureUploader错误?
- exif图像旋转问题使用carrierwave和rmagick上传到s3
- 如何使用Carrierwave和MiniMagick(Ruby on Rails)将PDF转换为图像数组
- Carrierwave RMagick没有删除转换为jpg的透明度
- 使用Dropzone JS的Carrierwave。 是否可以将这些与嵌套属性一起使用?
- Rails / Carrierwave gem – 如何以JSON格式访问图像上传数据?
- “拒绝访问” – 用户对S3 Bucket的权限