Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
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 ?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

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.

over 4 years ago · Santiago Trujillo Report

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.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!