【RubyonRails】Sheetモデルの@sheetというインスタンス変数に対し、カラム名を変数で指定して値を代入したいのですが、方法ご教示いただけないでしょうか。
下記のようなエラーメッセージが表示され値が代入できません。
syntax error, unexpected '=', expecting end ... @sheet.("#{@column_name}") = Time.now ...
【コード】
[:action]パラメータを取得して、変数で指定したシートの変数で指定したレコードに値を代入しようと思っております。
理由:ボタン実行で項目毎に実行時間を打刻するシステムなのですが、項目数が多いので変数を用いてスクリプトを簡素化したい。
def do @sheet = Sheet.find_by(id: params[:id]) @column_name = params[:action] @sheet.send(@column_name) = Time.now if @sheet.save flash[:notice] = "打刻しました" redirect_to("/sheets/#{@sheet.id}") else render("sheets/#{@sheet.id}") end end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/06 05:43
2021/10/06 05:44