0

嗨,我想在周末完成一个大学项目,但遇到了减速带。

该项目的基本思想是使用 rails 和 jQuery Mobile 在谷歌地图上显示带有地理标签的推文。我没有使用 twitter api,而是选择了 datasift 流 api。

为了使它工作,我需要将查询字符串传递给 datasift api,如下所示:

'twitter.geo exists AND interaction.geo geo_radius "53.33754457198889,-6.267493000000059:10"'

其中地理位置“53.33754457198889,-6.267493000000059”是中心,“10”是捕获地理标记推文的半径(以英里为单位)。

我想在字符串中传递变量,例如

'twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}"'

但是单引号意味着我不能用这个字符串来做这个我试图以不同的方式连接字符串没有快乐所以如果有人有一些建议或解决方案我会很感激

4

5 回答 5

1

您还可以使用%( )引用字符串,例如%(twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}").

有关您可能使用的其他一些替代方案,请参阅此内容。

于 2012-05-03T12:26:43.977 回答
1

您不能将变量传递到单引号字符串中,但有几种方法可以归档您想要的内容:

# 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}")
于 2012-05-03T12:28:12.150 回答
0

%()更喜欢(另一个答案),但您也可以\"在双引号字符串中转义引号。所有这些信息都可以在几乎任何 Ruby 字符串教程/文档中找到。

您还可以使用 HERE 字符串:

s = <<FOO
  twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}"
FOO
于 2012-05-03T12:27:30.763 回答
0

您可以转义双引号:

"twitter.geo exists AND interaction.geo geo_radius \"#{@users_location}:#{radius}\""

我希望它有帮助

于 2012-05-03T12:27:43.850 回答
0

通过连接创建您需要的字符串。就像是:

 str = "'twitter.geo exists AND interaction.geo geo_radius " + '"' + "#{@users_location}:#{radius}" + '"' + "'"
于 2012-05-03T12:33:17.040 回答