我正在使用从项目中回收的代码,但在这个版本中我没有很好的结果。
我使用Rails 5.2.2和RVM Ruby 2.7.1
我需要使用这个函数来调用ajax并交付已经存储的客户端数据并填写表单,数据将通过每个客户端的RUN进行搜索
我不明白为什么match()不适合我
控制器Pacientes
class Ajax::PacientesController < ApplicationController
layout nil
def obtener_datos_paciente
#usuario = params[:rut]
usuario = Usuario.first :rut => params[:rut]
puts usuario.inspect.yellow
if usuario.nil?
render :json => {
:exito => true,
:mensaje => "No existen registros asociados al rut #{params[:rut]}."
}
else
render :json => {
:exito => true,
:es_empresa => true,
:mensaje => "El paciente con rut #{params[:rut]} ya existe.",
:data => {
:id => usuario.id,
:rut => usuario.rut,
:primer_nombre => usuario.primer_nombre,
:segundo_nombre => usuario.segundo_nombre,
:apellido_paterno => usuario.apellido_paterno,
:apellido_materno => usuario.apellido_materno,
:direccion => usuario.direccion,
:ciudad => usuario.ciudad,
:comuna => usuario.comuna,
:telefono => usuario.telefono,
:email => usuario.email
}
}
end
rescue Excepciones::DatosNoExistentesError => e
flash.now[:info] = e.message
render :json => { :mensaje => e.message }
end
end
路线
match(
"ajax/pacientes/:rut" => "ajax::pacientes#obtener_datos_paciente",
:as => :obtener_datos_paciente,
:via => :get
)
控制器Usuariorequire 'json'
class UsuariosController < ApplicationController
helper_method :url_paciente
def index
@usuarios = Usuario.all
end
def ingreso_paciente
end
def registrar_ingreso
end
def ingresar_ficha_kinesica
alias url_paciente obtener_datos_paciente_ajax_pacientes_path
end
end
最简单的修复方法是将控制器重命名为:class PacientesController < ApplicationController
和match
到"ajax/pacientes/:rut" => "pacientes#obtener_datos_paciente"
如果您的控制器必须存在于Ajax
名称空间中,那么它可能也应该有一个名称空间路由。在这个答案中可以找到一个例子。