Lee*_*Lee 2 ruby-on-rails carrierwave ruby-on-rails-4
我正在使用Rails 4和带有Carrier Wave的Ruby 2以及jQuery Mobile 1.3,并且用户拥有一个带有徽标的配置文件.我已经在控制台中测试了后端Carrier Wave的东西并且它可以工作.
问题在于帮助器的形式,我做的并不重要,但是会显示一个file_field并让我选择一个图像,但它不会在params中出现.如果我将其更改为不存在的字段,例如.=f.file_field :field_not_permitted_in_strong_params
它没有倒下,文件选择器是可见的,如果我改变它=f.text_field :field_not_permitted_in_strong_params
,只有那时铁轨开始并抱怨该字段不存在.
所以我的问题基本上是,我可以上传文件客户端,但它不会通过表单数据发送,或者出现在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'
Run Code Online (Sandbox Code Playgroud)
好好花了几个小时后,问题是jQuery Mobile默认使用Ajax提交表单,文件无法使用Ajax提交而不使用插件等.所以解决方法是禁用这样的Ajax:
= form_for(@business_profile, :url => business_profile_path, :validate => true, :html => { :'data-ajax' => false }) do |f|
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1393 次 |
最近记录: |