モデルサンプルには、car、bikeの属性があります
x ="bike"
y = Sample.new
どのようにできるのか?
yx ?? エラーが発生します。それを実行できる方法はありますか。xが属性であることはわかっていますが、どれが属性かわかりません。
では、どうすればyxを取得できますか?
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)
動的メッセージ パッシングを使用する必要があります。これを試して:
y.send :bike
または、あなたの場合
y.send x