Rails 3.2.8で100%ajaxのアプリケーションを書いています
従業員の写真を従業員管理モジュールにアップロードしようとするまで、すべてが順調に進んでいました。
これは私のコードの一部です:
コントローラーで:
class EmpleadosController < ApplicationController
respond_to :js
before_filter :require_user
def index
@empleados = Empleado.paginate( page: params[ :page ],
joins: [:user,:contacto],
select: 'empleados.id as id, empleados.user_id, empleados.contratado_el, empleados.despedido_el, empleados.nss, empleados.sueldo_base_semanal, empleados.comentarios, empleados.foto_file_name, empleados.foto_content_type, empleados.foto_file_size, empleados.foto_updated_at, users.username as username, contactos.salutacion_id as salutacion_id, contactos.id as contacto_id, contactos.nombres as nombres, contactos.apellidos as apellidos'
).sorted( params[ :sort ] )
end
def new
@empleado = Empleado.new
end
def create
@empleado = Empleado.new(params[:empleado])
@empleado.sueldo_base_semanal = params[:empleado][:sueldo_base_semanal].gsub(',','').gsub('$','').to_f
if @empleado.save
redirect_to empleados_path
else
render action: 'new'
end
end
...
ビューについて(私はHAMLを使用しています):
= form_for( @empleado, remote: true, html: {multipart: true} ) do |f|
= show_me_the_errors @empleado
%table.captura
%tr
%td.etiqueta
= f.label :user_id
%td.campo
= f.select :user_id,
User.usuarios_no_asignados,
{ include_blank: true },
{ tabindex: 1 }
= image_tag 'nuevo_24.png',
style: 'vertical-align: bottom;',
id: 'empleado_nuevo_usuario'
... ( 5 more text fields ) ...
%tr
%td.etiqueta
= f.label :foto
%td.campo
= f.file_field :foto,
accept: 'image/png,image/gif,image/jpeg'
問題は、アップロードするファイルが選択されていない間、すべてが正常に機能し、コマンドがとrespond_to :js
の間のすべての対話で正常に機能することです。create
index
new
しかし、画像を選択すると、 と の後のすべてのやり取りcreate
が を完全に無視するようにindex
なりnew
ます。HTML
respond_to :js
form for
remote: true
すべてが正常に機能すると、URL は localhost:3000 になり、変更されることはありませんが、アップロードする画像を選択すると、その後の URLcrete
は localhost:3000/empleadosになります。
誰でもこれについて手がかりを持っていますか? 私は過去3日間、これを解決しようとして失敗しました。
あらかじめご了承ください。