Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

81
Vistas
Rails Ajax no muestra el resultado

He creado un nuevo controlador, que en el futuro será responsable solo de traducir cadenas para diferentes objetos. Aquí está el código del controlador:

 # frozen_string_literal: true class Api::TranslationsController < AuthenticatedController def translate_string @translated_string = GoogleTranslator.translate('hello', 'de') render json: {translated_string: @translated_string.to_json} end helper_method :translate_string private def translations_params params.permit( :id, :translated_string ) end end

Se ubica en el directorio controllers/api/translations_controller. Aquí está la parte de las rutas:

 namespace :api do resource :translations do member do get 'translate_string' end end end

Y aquí está parte de mi html.erb para llamar a la función JS:

 <%= image_tag "google-icon.png", id: "google_icon", onclick: "test_transl()", remote: true%>

Y aquí está mi código JS, actualmente solo con Ajax:

 <script> function test_transl(){ $.ajax({ type: "GET", url: "/api/translations/translate_string", dataType: "json", success:function (result){ console.log(result) } }) } </script>

Espero que este código ajax traduzca el mundo 'hola' al alemán y obtenga el valor @translated_string - 'hola' en la consola, pero no pasa nada excepto el hecho de que el error que obtuve es 'statusText: "parsererror"'. ¿Qué puede estar mal?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Finalmente encontré lo que estaba mal con mi código. El problema fue el hecho de que no pasé el token de sesiones en ajax. Así que ahora mi código ajax se verá así:

 $.ajax({ type: "GET", headers: { "Authorization": "Bearer " + window.sessionToken }, url: "/api/translations/translate_string", dataType: "json", success: function(result){ console.log(result); }, error: function (result){ console.log(result, this.error) } })

Y definitivamente del controlador así:

 def translate_string @translated_string = GoogleTranslator.translate('hello', 'de') render json: @translated_string.to_json end

La salida en la consola es: "hola".

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda