Railscurl语法

我可以从我的rails应用程序运行以下命令:

Hash.from_xml(%x{curl -d "admin=true" http://localhost:8888} ) rescue nil 

现在我想用变量替换“admin = true”如果我有x =“admin = true”我怎么能写上面的命令?

非常感谢

您可以直接在Ruby中使用curl,具体取决于命令和硬编码参数 – 当前代码更难维护,并且如果发生不良事件,则无法确切地告诉您可能出现的错误。 见rubycurl 。

理想的选择实际上是放弃使用curl并使用rest-client 。

 Hash.from_xml(RestClient.get('http://localhost:8888/', :admin=>true)) 

没有依赖 – 只是纯粹的ruby。 在任何情况下都提出了适当的例外。 琐碎的参数specing。 POST动词可用。

 x = %Q{"admin=true"} Hash.from_xml(%x{curl -d "#{x}" http://localhost:8888} ) rescue nil 

%Q{}语法表示带引号的字符串,有点像双引号字符串的“超级”/“增强”版本。

%x{}内的#{}语法称为插值 ,它允许评估字符串中的Ruby代码。