まずはgiven0,expected1の部分が引数の数があっていないエラーだと言うことを認識する
その上で結論、(task_params)と言う記述が必要でした
じゃあそれって何だっけってなって、ちゃんと見てみることに
まずは赤くチェックされているのを確認
見てみると51行目が怪しい。
50行目はタスクテーブルから特定のレコードを取得し@taskに代入している。
そして51行目でもしそれが更新されたらと言うif文がある。ここの@taskに注目。
updateは更新したデータに置き換えるアクションなので、またモデルを通してテーブルに保存するので必要なものがあります。
意図しないデータの登録・更新を防ぐためにストロングパラメーターです。
ストロングパラメーターてどこ?
ストロングパラメーターを確認
private
def task_params
params.require(:task).permit(:content, :point_id).merge(user_id: current_user.id)
end
private下に既に用意してあるもので、createの時も必要です。ここで定義したたtask_paramsを引数として渡す必要があったのです。
したがって引数の数があっていないと叱られエラーを引き起こしていました。
正解
def update
@task = Task.find(params[:id])
if @task.update(task_params) ←ここに追記
redirect_to root_path
end
これによってエラーを解消することができました。