0

こんにちは、週末に向けて大学のプロジェクトを完了しようとしていて、スピード バンプにぶつかりました。

このプロジェクトの基本的な考え方は、レールと 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}"'

しかし、一重引用符は、この文字列でこれを行うことができないことを意味します。さまざまな方法で文字列を連結しようとしましたが、喜びはありませんでした。誰かにアドバイスや解決策があれば、感謝します

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

必要な文字列を連結して作成します。何かのようなもの:

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

二重引用符をエスケープできます:

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

役立つことを願っています

于 2012-05-03T12:27:43.850 に答える