0

モデルサンプルには、car、bikeの属性があります

x ="bike"

y = Sample.new

どのようにできるのか?

yx ?? エラーが発生します。それを実行できる方法はありますか。xが属性であることはわかっていますが、どれが属性かわかりません。

では、どうすればyxを取得できますか?

4

2 に答える 2

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)
于 2012-06-20T18:48:09.150 に答える
0

動的メッセージ パッシングを使用する必要があります。これを試して:

y.send :bike

または、あなたの場合

y.send x
于 2012-06-20T18:48:11.757 に答える