我书面方式使用Rails 3.2.8应用程序100%AJAX麻烦与回形针和Ajax使用Rails 3.2.8
一切都很顺利,直到我试图给员工的照片上传到员工管理模块。
这是我的代码部分:
在控制器:
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并且永远不会改变,但是当我选择要上传的图片时,crete
之后的URL变为localhost:3000/empleados
有没有人对此有任何线索?我一直在努力解决这个问题,最后3次失败。
Thaks提前。