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

123
Vistas
Recupere datos de la acción en el mismo controlador creado a través de AJAX

Me estoy perdiendo algo muy simple, pero no estoy seguro de qué. Tengo dos acciones en el mismo controlador AppProxy . Una acción, AppProxy#return_credit también se usa para POST datos a través de AJAX, y funciona muy bien:

 def return_credit customer = Customer.find_by(email: params["email"]) @credit_amount = customer.credit_amount.to_f render json: @credit_amount, :status => :ok end

La acción anterior funciona muy bien y devuelve @credit_amount muy bien. Sin embargo, cuando necesito usar @credit_amount en otra acción dentro del mismo controlador, AppProxy#credit que alimenta una vista, @credit_amount ha desaparecido y ahora está vacío.

 def credit @credit_amount # if I do puts "#{@credit_amount}" here its empty, # and obviously same in view end

También intenté poner attr_reader :credit_amount en este controlador, pero no ayuda.

¿Cómo puedo usar la variable @credit_amount en mi acción de credit ?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Como acción de credit ubicada en el controlador diferente, no puede compartir variables entre dos controladores de esa manera. Para este propósito, existe Model .

Actualizar:

Ha actualizado la pregunta y responde lo mismo, no puede compartir variables entre dos acciones ( solicitudes ) de esa manera. Puede mover la lógica a un método separado

 def set_credit_amount customer = Customer.find_by(email: params["email"]) @credit_amount = customer.credit_amount.to_f end

y use este método en before_action o llame directamente en acciones, sin embargo, no puede guardar la variable ( data ) en una acción ( solicitud ) y luego usarla en otra.

Si desea compartir datos entre dos acciones ( solicitudes ), debe almacenarlos en algún lugar, en sessions o en una base de datos NoSQL como Redis.

about 4 years ago · Santiago Trujillo Denunciar

0

@credit_amount debe configurarse nuevamente.

Si tuviera que usar esto de nuevo:

 customer = Customer.find_by(email: params["email"]) @credit_amount = customer.credit_amount.to_f

Entonces @credit_amount tendría el mismo valor que en #return_credit. Si este es el valor que desea, le recomendaría crear un método privado al que puedan acceder todas sus acciones.

about 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