前提・実現したいこと
Ruby(Ruby on Rails)で勤怠管理システムを作っています。
すべてのユーザーの基本勤務時間(basictime)と指定勤務時間(worktime)という2つのカラムのデータを一括で更新したい(更新ボタンを押すと一括で全ユーザーのデータが更新)
発生している問題・エラーメッセージ
エラーメッセージ When assigning attributes, you must pass a hash as an argument.
該当のソースコード
users_controller.rb def update_basic_info @user = User.all @user = works_params.each do |id, work_param| user = User.find(params[:id]) user.update_attributes(work_param) user end flash[:success] = "基本情報を更新しました。" redirect_to users_url end private def works_params params.permit(user: [:id, :basic_time, :work_time])[:user] end viewの部分 (更新ボタンの記述) <div> <%= form_with(model: @user, url: update_basic_info_user_path(@user), local: true, method: :patch) do |f| %> </div>
試したこと
一人分の勤務時間の更新は問題なく成功しております。
全てのユーザーを更新するには、User.allを使うこと、each doなどを使うことは分かったのですが、なかなかうまく一括更新できない状況です。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
> 全てのユーザーを更新するには、User.allを使うこと、each doなどを使うことは分かったのですが、なかなかうまく一括更新できない状況です。
その「なかなかうまく」いかなかったコードを質問文に追記した方が良いんでは。