2012-11-23 130 views
2

我試圖下面從我的Ruby代碼curl命令在Ruby代碼執行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}作爲字符串。

請幫我這個。讓我知道如果我做錯了什麼。

謝謝。

回答

2

爲了啓用字符串插值,您將需要在字符串中使用雙引號。這裏已經討論了這個主題:Double vs single quotes

如果在將它們合併成一個字符串之前重構它並將它們分配給變量,它也會使您的代碼更好地閱讀。

這樣:

host_name = 'stackoverflow.com' 

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

將無法​​正常工作 而

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

+0

+ 1Thanks @Volker Pacher的...這是有幫助的.. :-) –