Pasar variables a cadenas entre comillas simples en Rails
Frecuentes
Visto 2,065 equipos
0
Hola, estoy tratando de completar un proyecto universitario para el fin de semana y me he topado con un bache.
La idea básica del proyecto es mostrar tweets geoetiquetados en Google Maps usando Rails y jQuery Mobile. En lugar de usar la API de Twitter, opté por la API de transmisión de datos.
Para que esto funcione, necesito pasar una cadena de consulta a la API de datasift que se ve así:
'twitter.geo exists AND interaction.geo geo_radius "53.33754457198889,-6.267493000000059:10"'
donde la geolocalización "53.33754457198889,-6.267493000000059" es el centro y el "10" el radio en millas alrededor del cual capturar tweets geoetiquetados.
Quiero pasar variables en la cadena, por ejemplo
'twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}"'
pero las comillas simples significan que no puedo hacer esto con esta cadena. He intentado concatenar la cadena de diferentes maneras sin alegría, así que si alguien tiene algún consejo o una solución, se lo agradecería.
5 Respuestas
1
No puede pasar variables a cadenas entre comillas simples, pero existen varios métodos para lograr lo que desea:
# use a double quouted string and escape the quotes inside the string
"twitter.geo exists AND interaction.geo geo_radius \"#{@users_location}:#{radius}\""
# use single quotes and concat several strings
'twitter.geo exists AND interaction.geo geo_radius "' + @users_location + ':' + radius + '"'
# just use single quotes in a double quoted string
"twitter.geo exists AND interaction.geo geo_radius '#{@users_location}:#{radius}'"
# as the other answers suggest use %()
%(twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}")
contestado el 03 de mayo de 12 a las 13:05
0
Me gusta %()
mejor (la otra respuesta), pero también puede escapar de las comillas con \"
dentro de una cadena entre comillas dobles. Toda esta información se puede encontrar en casi cualquier tutorial/documentación de cadenas de Ruby.
También puede usar cadenas AQUÍ:
s = <<FOO
twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}"
FOO
contestado el 03 de mayo de 12 a las 13:05
0
Puedes escapar de las comillas dobles:
"twitter.geo exists AND interaction.geo geo_radius \"#{@users_location}:#{radius}\""
Espero que ayude
contestado el 03 de mayo de 12 a las 13:05
0
Cree la cadena que necesita por concatenación. Algo como:
str = "'twitter.geo exists AND interaction.geo geo_radius " + '"' + "#{@users_location}:#{radius}" + '"' + "'"
contestado el 03 de mayo de 12 a las 13:05
Ja, cuando comencé a responder esto, no se habían publicado otras respuestas. Para cuando he terminado, solo estoy repitiendo la respuesta de otra persona. Mmm ... - noviembrekilo
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby-on-rails ruby-on-rails-3 string or haz tu propia pregunta.
Gracias chicos, estoy en la oficina en este momento, así que cuando llegue a casa revisaré las respuestas y me pondré en contacto con ustedes, ¡gracias! - user841747