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

172
Views
Cómo usar constantes definidas en javascript en un archivo erb como argumento en el método api de Rails

Estoy tratando de jugar con mi código y he llegado a un

Tengo una etiqueta de script en un archivo erb. Obtengo la zona horaria del navegador y la almaceno en una constante. Quiero usar el valor de la constante en un método API de Rails como argumento, pero aparece el error.

variable local indefinida o método `browser_time_zone' para #

 <script> // this returns Eastern Time (US & Canada) const browser_time_zone = Intl.DateTimeFormat().resolvedOptions().timeZone; const timezone = <%= ActiveSupport::TimeZone::MAPPING.key(browser_time_zone) %> </script>

¿Cómo puedo usar el valor de browser_time_zone como argumento para el método de mapeo de zona horaria? Cualquier ayuda será apreciada

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No creo que pueda hacer lo que quiera, porque la ejecución de Javascript y Ruby ocurre en diferentes momentos (Ruby primero cuando la página se procesa/crea, luego javascript cuando el navegador carga el HTML). En su lugar, podrías intentar algo como esto:

 <script> // this returns Eastern Time (US & Canada) // https://stackoverflow.com/a/28191966/2543424 function getKeyByValue(object, value) { return Object.keys(object).find(key => object[key] === value); } const time_zone_mapping = <%= ActiveSupport::TimeZone::MAPPING.to_json.html_safe %>; const browser_time_zone = Intl.DateTimeFormat().resolvedOptions().timeZone; const timezone = getKeyByValue(time_zone_mapping, browser_time_zone); </script>

Aquí estamos volcando el contenido de ActiveSupport::TimeZone::MAPPING en una nueva variable de javascript en forma de objeto JSON, y luego accediendo a él de la misma manera que intentaba hacer, pero todo a través de Javascript.

Tenga en cuenta que la sintaxis ActiveSupport::TimeZone::MAPPING.to_json.html_safe puede no ser 100% correcta, pero esa es la idea general

about 4 years ago · Juan Pablo Isaza 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!