背景
人のコードをリファクタリングしてたら、複数のView
ファイルで似たような部分があった。
まとめてHelper
にぶち込んでやろうと思った。
ただ、View
に紐づくController
によって微妙に表現が異なっていたのでウッ
。
解決法
controller.controller_name
でController
名を取得できた。
おそらく、params
的なものに乗ってhelper
まで情報が来てるのだろう(適当)
Helper
内でController
によって条件分岐させたらできた!
具体的には下記のイメージ。
(app/helper/application_helper.rb
)
module ApplicationHelper
def hogehoge_helper
if controller.controller_name == "blogs"
# blogsコントローラに紐づくViewでやりたい処理
elsif controller.controller_name == "topics"
# topicsコントローラに紐づくViewでやりたい処理
else
# それ以外のコントローラに紐づくViewでやりたい処理
end
end
end