Railsでurl helperのメソッドを他のクラスのクラスメソッドとして扱いたい
Model内などでinclude UrlHelper
を行いたくないので、他のクラスにクラスメソッドとして_path
、_url
メソッドを生やし、それを参照するような形にしようと考えています。
はじめ以下のような実装を行なったところ、うまく行きませんでした
class UrlResolver
extend Rails.application.routes.url_helpers
end
しかしこれでは動作せず、以下のように実装を変更したところ動作するようになりました。
class UrlResolver
class << self
include Rails.application.routes.url_helpers
end
end
実装はできたものの、動く理由がよくわかっておらずちょっと気持ち悪いなと思っています。
そもそもこのようなケースでの正しい実装方法があるのであればそれが知りたいです!
また、extend
では動かない理由もわかる方は教えていただけるとありがたいです。
2