Rails開発でundefined method flash
for がでた時の対応の書き溜め。
RailsAPIモードで発生したためちょっと調査した。
解決策
config/applicaiton.rbに下記を追記して解決。
1 |
config.middleware.use ActionDispatch::Flash |
原因(?)
api_only=trueになっているのにこのエラーが起きる意味がわからず悩んだ。
APIモードだからflashを使っていないのになぜだ。
500エラーが発生した際にflashを使用するコードがどっかにあると思われる。
一つ可能性として開発環境では下記のルーティングが動かず、
デフォルトの500系のテンプレート(?)が使われてしまったためにflashが呼ばれているんかも。
config/routes.rb
1 2 3 4 5 6 7 |
class ApplicationController < ActionController::Base unless Rails.env.development? rescue_from Exception, with: :error500 rescue_from ActiveRecord::RecordNotFound, with: :error404 rescue_from ActionController::ParameterMissing, with: :error400 end end |
じゃあね〜〜。