2012-06-20 41 views
0

模型样品属性的汽车,自行车如何访问其存储为变量

x ="bike" 

y = Sample.new 

我该怎么办属性?

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

那么我怎样才能获得y.x?

回答

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) 
0

您必须使用动态消息传递。试试这个:

y.send :bike 

或者,你的情况

y.send x