如何访问存储为变量的属性

时间:2012-06-20 18:46:50

标签: ruby variables

model Sample有属性car,bike

x ="bike"

y = Sample.new

我该怎么办?

y.x ?? 它给了我一个错误 有什么方法可以做到,我知道x是一个属性,但我不知道哪一个。

那我该如何获得y.x?

2 个答案:

答案 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