背景
とあるユーザーテーブルにて、
hoge1
,hoge2
,hoge3
というカラムがあったとします。
それぞれの値を取得しようとすると、
@user.hoge1
@user.hoge2
@user.hoge3
みたいに書くことがあると思います。
今回は、この1,2,3のメソッド名を変数に置き換えて、動的に変化させたいという背景がありました。
方法
.sendを使う。
(.sendは動的にメソッドを変化させるメソッドです。)
・例
num = 1
@user.send("hoge#{num}")
# @user.hoge1が実行される
このように書けば、変数numの値が代入されます。
あとは、num
の部分をparams[:fuga]
とかにすれば、動的に変化できるかと思います。