model Sample有属性car,bike
x ="bike"
y = Sample.new
我该怎么办?
y.x ?? 它给了我一个错误 有什么方法可以做到,我知道x是一个属性,但我不知道哪一个。
那我该如何获得y.x?
答案 0 :(得分:2)
当方法存储为字符串时,您可以使用send
来调用对象上的方法:
x = "bike"
y = Sample.new
y.send(x) # Equivalent to y.bike
以下内容是等效的,但您可以send
受保护的方法:
object.method_name
object.send("method_name")
object.send(:method_name)
答案 1 :(得分:0)
您必须使用动态消息传递。试试这个:
y.send :bike
或者,在你的情况下
y.send x