我有一个包含对象及其属性的文本文件(objects.txt)。 该文件的内容类似于:
Object.attribute = "data"
在另一个文件上,我正在加载objects.txt文件,如果我输入:
puts object.attribute
打印出data
当我尝试使用字符串访问对象和/或属性时出现问题。我在做的是:
var = "object" + "." + "access"
puts var
打印出object.access
而不是"data"
的内容。
我已经尝试使用instance_variable_get
并且它可以工作,但我必须修改object.txt并在开头添加@
以使其成为实例变量,但我不能这样做,因为我不是object.txt文件的所有者。
作为一种解决方法,我可以解析object.txt文件并获取我需要的数据,但我不想这样做,因为我想利用已有的数据。
有什么建议吗?
答案 0 :(得分:2)
是的,看跌期权是正确的吐出" object.access"因为你正在创建那个字符串。
为了评估字符串,就像它是ruby代码一样,你需要使用eval()
例如:
var = "object" + "." + "access"
puts eval(var)
=> "data"
请注意,如果您正在评估可能来自其他用户的任何内容,那么这样做非常危险。