2

curl私は私のルビーコードから次のコマンドを実行しようとしています

Kernel.system'curl -H "Content-Type:application/json" -H "Accept:application/json" -d "{\"project\":{\"name\":\"BB\",\"description\":\"Book\"}}" "http://localhost:3000/company/projects?auth_token=mRFWyxfdPKHsDb4HhyLP"'

こんなことしたい

name = "BB"(変数を使用)

その後、実行します

Kernel.system'curl -H "Content-Type:application/json" -H "Accept:application/json" -d "{\"project\":{\"name\":"#{name}",\"description\":\"Book\"}}" "http://localhost:3000/company/projects?auth_token=mRFWyxfdPKHsDb4HhyLP"'

しかし、このアプローチは機能していません...#{name}文字列として使用します。

これで私を助けてください。私が何か間違ったことをしている場合は私に知らせてください。

ありがとう。

4

1 に答える 1

3

文字列補間を有効にするには、文字列で二重引用符を使用する必要があります。トピックはここでカバーされています:二重引用符と一重引用符

また、コードを1つの文字列に結合する前に、コードをリファクタリングして変数にパーツを割り当てた方が、コードが読みやすくなります。

それで:

host_name = 'stackoverflow.com'

Kernel.system 'curl -I #{host_name}' 

動作しませんが

Kernel.system "curl -I #{host_name}"

意思

于 2012-11-23T13:03:11.760 に答える