我正在尝试使用ruby测试从mysql获取变量但是当我获取变量并使用put来读取变量并且没有引号等时将其显示在控制台中然而当我尝试在其他地方调用变量时,例如{{1我得到一个这样的输出username = "#{dev_test1}"
我只想得到一个变量,我可以在一个没有[["variable called from database"]]
的字符串中使用它。我正在使用的代码在
[[""]]
答案 0 :(得分:2)
在您的代码中有一些可以清理的东西,但我会看看为什么您在终端和实际代码中得到两个不同的答案。
在Ruby中,puts
和#{variable}
不是一回事。如果传递数组,puts
实际上会通过剥离数组将值更改为可读字符串。这将删除括号。
字符串插值(#{variable}
)相当于在变量上调用.to_s
。这会将数组转换为括号完整的字符串。因此,当您调用puts时,密码已保存为字符串,因此puts将按原样,括号和全部显示。
所以
password = "#{array}" #==> "[[array_contents]]"
puts password #==> "[[array_contents]]"
而
puts array #==> "array_contents"