add_template_helperを使っているとRails 6.1で動かなくなるぞ
add_template_helper
何それって思った人、読まなくて良いです。
そのまま知らないままにしておいて問題ないと思います。
Rails 4.0くらいでRailsを始めたニワカなので知らなかったのですが、その昔のRails 2.3とかそれくらいの時代にはAction MailerなどでHelperを使うために add_template_helper
を使っていたそうです。
で、このメソッドはRails 6.0までは一応存在していた(Rails 3.0くらいからはpublicなAPIじゃなかったはず)のですが、Rails 6.1でついに削除されたようです。
publicじゃないし使わなければいいだけなんですが、「ActionMailer Helper」みたいな感じで検索するとわりと最近の記事でまで add_template_helper
を使うみたいに書かれていて、「おいおいまじかよ」みたいな気持ちになった次第です。
(2021.01.24現在で観測できた範囲では2020年や2019年の記事もありました)
ActionMailerやActionControllerでHelper使いたいときはどうすれば良いか?
最近のRailsはデフォルトで使えるので何も気にしなくても使えるはず。
config.action_controller.include_all_helpers = false
みたいなことをしていてデフォルトで使えるようになっていない場合は helper
を使えばいいと思います。
2021.08.12追記
ActionMailerでデフォルトでHelperが使えるというのは間違いでした。
ActionControllerはデフォルトで使えますがActionMailerは使えないようですね。
素直に helper
に置き換えましょう。
公式なドキュメント読もうな。
Discussion