Ruby on rails 在Rails中将变量传递到单引号字符串中

Ruby on rails 在Rails中将变量传递到单引号字符串中,ruby-on-rails,ruby-on-rails-3,string,Ruby On Rails,Ruby On Rails 3,String,嗨,我周末要完成一个大学项目,遇到了一个减速带 该项目的基本思想是使用rails和jQuery Mobile在google地图上显示地理标记的推文。我没有使用twitter api,而是选择了datasift流式api 为了实现这一点,我需要向datasift api传递一个查询字符串,如下所示: 'twitter.geo exists AND interaction.geo geo_radius "53.33754457198889,-6.267493000000059:10"' 其中地理位

嗨,我周末要完成一个大学项目,遇到了一个减速带

该项目的基本思想是使用rails和jQuery Mobile在google地图上显示地理标记的推文。我没有使用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}"'
但是单引号意味着我不能用这个字符串来做这件事,我试着用不同的方式连接字符串,但没有乐趣,所以如果有人有一些建议或解决方案,我将不胜感激。

你也可以使用
%(
来引用字符串,比如
%(twitter.geo exists AND interaction.geo geo\u)#{@users\u location}:{radius}“

请参阅以了解您可能使用的其他一些替代方法。

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

您还可以在此处使用字符串:

s = <<FOO
  twitter.geo exists AND interaction.geo geo_radius "#{@users_location}:#{radius}"
FOO

s=您可以将双引号转义:

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

我希望它有帮助

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

# 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}")

通过连接创建所需的字符串。类似于:

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

谢谢,伙计们,我现在在办公室,所以当我回到家时,我会浏览一下答案,然后再给你回复,谢谢!哈-当我开始回答这个问题时,没有其他答案被发布。当我完成时,我只是重复别人的答案。嗯。。。