前提・実現したいこと
投稿内容の変更を保存しようとするとArgumentErrorが出てしまいます。
新規投稿は問題なく行えています。
解決策を一通り調べたものの、似たような状況の記事が見つからなく詰まってしまいました。
解決のヒントを頂けると幸いです。
発生している問題・エラーメッセージ
エラーメッセージ ArgumentError in TasksController#update wrong number of arguments (given 1, expected 0) Extracted source (around line #26): -------エラー箇所--------- 24 25 def update 26 task = Task.find(params[:id]) #原因の箇所? 27 task.update!(task_params) 29 redirect_to tasks_url, notice: "タスク「#{task.name}」を更新しました" 28 end
tasks_controller.rb
TasksController < ApplicationController def index @tasks = Task.all end def show @task = Task.find(params[:id]) end def new @task = Task.new end def create task = Task.new(task_params) task.save! redirect_to tasks_url, notice: "タスク「#{task.name}」を作成しました。" end def edit @task = Task.find(params[:id]) end def update task = Task.find(params[:id]) task.update!(task_params) redirect_to tasks_url, notice: "タスク「#{task.name}」を更新しました" end private def task_params params.require(:task).permit(:name, :description) end end
edit.html.slim
h1 タスクの編集 .nav.justify-content-end = link_to '一覧', tasks_path, class: 'nav-link' = form_with model: @task, local: true do |f| .form-group = f.label :name = f.text_field :name, class: 'form-control', id: 'task_name' .form-group = f.label :description = f.text_area :description, rows: 5, class: 'form-control', id: 'task_description' = f.submit nil, class: 'btn btn-primary'
ルーティング
Rails.application.routes.draw do root to: 'tasks#index' resources :tasks # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
試したこと
調べた結果、引数に関するエラーという事は分かりました。
試しに def update部分全てを削除しても同じエラーが出ました。
updateアクション以外の場所に原因があるのかも?
補足情報(FW/ツールのバージョンなど)
使用os mac
ruby 2.7.0
Rails 6.0.3.2
データベース postgresql
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。