Ruby on Rails でタスク管理アプリケーション作成中に、以下のエラーに遭遇しました。
使用している学習本は「現場で使えるRuby on Rails 5速習実践ガイド」です。
現場で使える Ruby on Rails 5速習実践ガイド
- 大場 寧子,松本 拓也,櫻井 達生,小田井 優,大塚 隆弘,依光 奏江,銭神 裕宜,小芝 美由紀,株式会社万葉
- マイナビ出版
- 価格¥3,828(2025/05/03 18:38時点)
- 発売日2018/10/19
- 商品ランキング199,745位
※誤植やコード記述内容の訂正、各章の完成イメージファイルなどの確認は以下のサポートサイトにて確認可能。
現場で使えるRuby on Rails5速習実践ガイド サポートページ
【Railsアプリ作成中、ブラウザ上に表示されたエラー】
raise ActionController::InvalidAuthenticityToken
上記エラーを調べた結果、Railsにはデフォルトでaplication.controller.rb内にprotect_from_forgeryメソッドが定義されているためにこうしたエラーが発生する可能性があるとのこと。
※CSRF(Cross-Site Request Forgery)対策のための仕様であるため、開発サイドでprotect_from_forgeryを追記しておく必要があるようです。
taskleaf/app/controller/tasks_controller.rb内に以下のコードを追記して解消しました。
class TasksController < ApplicationController protect_from_forgery #←この記述を追記 ...(中略)...
無事にアドミン権限でログインした際に、ユーザー一覧が表示されるようになりました。