ruby on rails - tutorial - Rails file_field no carga nada
file upload with carrierwave (1)
Bien, después de pasar horas al respecto, el problema es que jQuery Mobile envía formularios con Ajax de forma predeterminada, y los archivos no se pueden enviar con Ajax sin usar complementos, etc. Por lo tanto, la solución es deshabilitar el Ajax de esta manera:
= form_for(@business_profile, :url => business_profile_path, :validate => true, :html => { :''data-ajax'' => false }) do |f|
Estoy usando Rails 4 y Ruby 2 con Carrier Wave junto con jQuery Mobile 1.3, y un usuario tiene un perfil que tiene un logotipo. He probado las cosas de fondo de Carrier Wave en la consola y funciona.
El problema está en el formulario de ayuda, no importa lo que haga, pero se mostrará un file_field y me permitirá elegir una imagen, pero no aparece en los parámetros. Si lo cambio a un campo que no existe, por ej. =f.file_field :field_not_permitted_in_strong_params
no se cae y un selector de archivos es visible, si cambio eso a =f.text_field :field_not_permitted_in_strong_params
, solo entonces los rails se =f.text_field :field_not_permitted_in_strong_params
y se quejan de que el campo no existe.
Así que mi problema es básicamente, puedo subir un archivo al lado del cliente, pero no se envía a través de los datos del formulario, ni aparece en el hash de params, y todos mis otros campos funcionan correctamente.
Aquí hay un fragmento del formulario:
= 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''